資料結構之鏈式棧

2021-06-22 10:09:11 字數 1502 閱讀 7044

好久不見,前面我們學過了資料結構的順序棧。今天我們來學習下鏈式棧的實現,

鏈式棧的話,

還是要利用前面我們實現的鏈式鍊錶,不知道鏈式鍊錶的,出門左轉,前面就有介紹。

第七個例子,鏈式棧的實現:

注:把我們先前實現的鏈式鍊錶的標頭檔案和實現檔案包含進來

標頭檔案

#ifndef _linkstack_h_

#define _linkstack_h_

typedef void linkstack;

linkstack* linkstack_create();

void linkstack_destroy(linkstack* stack);

void linkstack_clear(linkstack* stack);

int linkstack_length(linkstack* stack);

int linkstack_push(linkstack* stack, void* item);

void* linkstack_top(linkstack* stack);

void* linkstack_pop(linkstack* stack);

#endif

實現檔案

#include "linkstack.h"

#include "linklist.h"

#include typedef struct tag_linkstacknode

tlinkstacknode;

linkstack* linkstack_create()

void linkstack_destroy(linkstack* stack)

void linkstack_clear(linkstack* stack)

}int linkstack_length(linkstack* stack)

int linkstack_push(linkstack* stack, void* item)

return ret;

}void* linkstack_top(linkstack* stack)

return ret;

}void* linkstack_pop(linkstack* stack)

return ret;

}

這樣的炫技在前面順序棧見過吧!現在還熟悉嗎?

測試檔案

#include #include #include "linkstack.h"

int main(int argc, char *argv)

system("pause");

return 0;

}

好了,鏈式棧的實現就是這麼簡單,相信你肯定看得懂,後面我會慢慢更新一些高階資料結構的應用。

資料結構 棧之鏈式儲存

跟鍊錶結構一樣,只是多了條限制 只能從煉表頭插入和刪除。原始碼 include include include include 棧的鏈式儲存 typedef struct data typedef struct stack 初始化空棧 void initstack stack s 判斷是否為空棧 i...

資料結構 鏈式棧

編譯錯誤 passing const linkstack as this argument discards qualifiers fpermissive 解決方法 c 中const 引用的是物件時只能訪問該物件的const 函式,因為其他函式有可能會修改該物件的成員,編譯器為了避免該類事情發生,會...

資料結構之鏈式棧的實現

上篇部落格我們已經對棧的基本操作有了介紹,現在我們利用鍊錶的方式來實現一下棧的基本操作。其實利用鍊錶更好實現棧,因為我們鍊錶的頭插與頭刪恰好可以與棧相對應,先進的後出,這裡我們就不過多的贅述,直接進行實現即可。pragma once include include include typedef c...