資料結構之鏈式棧的實現

2021-08-18 08:01:47 字數 2034 閱讀 1976

上篇部落格我們已經對棧的基本操作有了介紹,現在我們利用鍊錶的方式來實現一下棧的基本操作。

其實利用鍊錶更好實現棧,因為我們鍊錶的頭插與頭刪恰好可以與棧相對應,先進的後出,這裡我們就不過多的贅述,直接進行實現即可。

#pragma once

#include

#include

#include

typedef

char linkstacktype;

typedef

struct linkstacknodelinkstacknode;

linkstacknode* head;

void linkstackinit(linkstacknode** phead);//初始化鏈式棧

void linkstackpush(linkstacknode** phead, linkstacktype value);//鏈式棧的入棧

void linkstackpop(linkstacknode** phead);//鏈式棧的出棧

void destroystack(linkstacknode** phead);//銷毀鏈式棧

int linkstackgetfront(linkstacknode* head, linkstacktype* value);//獲取鏈式棧棧頂元素

#include

"linkstack.h"

#define head printf("***************===%s***************==\n",__function__);

linkstacknode* creatstacknode(linkstacktype value)

void linkstackinit(linkstacknode** phead)//初始化鏈式棧

*phead =

null;

return;

}void linkstackpush(linkstacknode** phead, linkstacktype value)//鏈式棧的入棧

linkstacknode* tmp =

*phead;

(*phead) = creatstacknode(value);

(*phead)->next = tmp;

return;

}void linkstackpop(linkstacknode** phead)//鏈式棧的出棧

if(*phead ==

null)

linkstacknode* to_delete =

*phead;

*phead = to_delete->next;

free(to_delete);

to_delete =

null;

return;

}void destroystack(linkstacknode** phead)//銷毀鏈式棧

if(*phead ==

null)

linkstacknode* cur =

*phead;

while(cur !=

null)

return;

}int linkstackgetfront(linkstacknode* head, linkstacktype* value)//獲取鏈式棧棧頂元素

*value = head->

data;

return

1;}

//測試**如下

void linkstackprint(linkstacknode* head, char* msg)

linkstacknode* cur = head;

while(cur != null)

printf("\n");

}void testpush()

void testpop()

void testgetfront()

int main()

資料結構棧(鏈式實現)

真正的棧操作是在棧頂,這裡給出的棧是帶了頭結點的棧,也就是說head next代表圖示棧頂,head next data是1 實現 include include typedef int datatype typedef struct snode lsnode 初始化帶頭結點的鏈式堆疊,初始化函式中...

資料結構之鏈式棧

好久不見,前面我們學過了資料結構的順序棧。今天我們來學習下鏈式棧的實現,鏈式棧的話,還是要利用前面我們實現的鏈式鍊錶,不知道鏈式鍊錶的,出門左轉,前面就有介紹。第七個例子,鏈式棧的實現 注 把我們先前實現的鏈式鍊錶的標頭檔案和實現檔案包含進來 標頭檔案 ifndef linkstack h defi...

資料結構 棧 c鏈式實現

目的 學習資料結構,學校c語言 功能 棧的鏈式結構實現 include include define ok 1 define false 0 define true 1 define error 0 typedef int status typedef int selemtype 結點型別 type...