作業三 鏈棧

2022-05-25 05:09:06 字數 496 閱讀 6685

棧鏈,就是棧和鍊錶的集合體咯,理解上不難,只是因為鍊錶指標的存在容易做錯

typedef int elemtype;

struct node;

typedef struct node * ptrtonode;

typedef ptrtonode stack;

struct node

;

2288 棧鏈進棧

void push(stack s, elemtype x)

因為是鍊錶,所以插入資料前要先malloc分配乙個空間,賦值完後next連線

這裡p->next=s->next其實就是p->next=null

2289 棧鏈出棧

void pop(stack s)

}

if 判斷是不是空棧

其實這裡寫的有問題,雖然是ac但是這樣刪除以後,原s->next會造成記憶體殘留,應該把它free()掉。

實驗三 順序棧和鏈棧

1 熟練掌棧和佇列的結構特點,掌握棧和佇列的順序儲存和鏈式儲存結構和實現。2 學會使用棧和佇列解決實際問題。1 自己確定結點的具體資料型別和問題規模 分別建立乙個順序棧和鏈棧,實現棧的壓棧和出棧操作。分別建立乙個順序佇列和鏈佇列,實現佇列的入隊和出隊操作。2 設計演算法並寫出 實現乙個十將二進位制轉...

資料結構作業 鏈棧的實現

鏈棧,即為使用鏈式儲存的棧。本程式使用void指標指向不同型別的鏈棧頭結點,使用的時候強制轉換即可。用template實現了儲存不同資料型別。include include include include using namespace std const int maxn 9 struct sta...

棧,順序棧,鏈棧

棧作為一種限定性線性表,是將表的插入刪除限制為僅在表的一端進行,通常將表中允許插入刪除的一端叫做棧頂 top 因此棧頂的當前位置是動態變化的。棧的另一端叫做棧底 bottom 當棧中沒有元素時稱為空棧。插入操作稱為進棧或入棧,刪除操作稱為出棧或退棧。棧是先進後出的線性表,簡稱為lifo表。棧主要有兩...