資料結構與演算法 實現乙個鏈結儲存的棧

2021-10-06 04:51:43 字數 874 閱讀 7349

// 鏈結儲存的棧實現檔案

#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 是棧頂元素。這種實現方案將棧元素儲存在一片連續...