// 鏈結儲存的棧實現檔案
#include
#include
#include 「lnkstack.h」
/建立棧/
linkstack* ls_create()
/釋放棧/
void ls_free(linkstack* ls)
free(ls);
}/將棧變為空棧/
void ls_makeempty(linkstack* ls)
ls->top = null;
ls->len = 0;
}/判斷棧是否為空/
bool ls_isempty(linkstack* ls)
/********** end **********/
}/出棧。出棧元素放入item;如果空棧,將返回false/
bool ls_pop(linkstack* ls, t& item)
/********** end **********/
/讀棧頂元素放入item。如果空棧,將返回false/
bool ls_top(linkstack* ls, t& item)
item = ls->top->data;
return true;
/********** end **********/
/從棧頂到棧底列印各結點資料/
void ls_print(linkstack* ls)
printf(「the stack (from top to bottom):」);
lnode* curr=ls->top;
while(curr) // printf("\n");
}
實現乙個鏈結儲存的棧(資料結構與演算法 棧)
相關知識 鏈結儲存的棧 棧的儲存也可以採用鏈結儲存的方式來實現。下面給出了一種基於鏈結儲存的棧的實現方案 如圖 1 所示 該棧儲存了 3 個元素 其中 56 是棧頂元素。這種實現方案中與棧相關的兩個屬性元素top和len介紹如下 top 指向棧頂結點的指標 len 棧中結點的個數。特別說明 鏈結儲存...
實現乙個順序儲存的佇列(資料結構與演算法 佇列)
相關知識 佇列是乙個插入操作和刪除操作受到限制的線性表資料結構。佇列的插入和刪除被限制在表的兩端,即插入操作只能在表的一端進行,而刪除操作只能在表的另一端進行,因此佇列又稱先進先出表。順序儲存的佇列 佇列既可以採用順序儲存,也可以採用鏈結儲存來實現。下面給出了一種基於順序儲存的佇列實現方案 該佇列儲...
實現乙個順序儲存的棧(資料結構與演算法 棧)
相關知識 棧的基本概念 棧是一種運算受限的線性表。其限制是僅允許在表的一端進行插入和刪除運算,這一端被稱為棧頂。棧既可以採用順序儲存,也可以採用鏈結儲存來實現。下面給出了一種基於順序儲存的棧的實現方案 如圖 1 所示 該棧儲存了 4 個元素 其中 12 是棧頂元素。這種實現方案將棧元素儲存在一片連續...