資料結構 鏈式棧的表示和實現

2021-08-19 06:03:43 字數 997 閱讀 6288

/*

鏈式棧的表示和實現

鏈式棧:採用鏈式的儲存結構實現的棧;通常使用單鏈表的形式;

2019.04.15

*/#include

#include

#include

using

namespace

std;

#define ok 1

#define error 0

#define overflow -1

typedef

int status;

typedef

struct stacknodestacknode,*linkstack;

//鏈棧的初始化

//演算法步驟:

//構造乙個空棧,將棧頂指標置空

status initstack(linkstack &s)

//鏈棧的入棧

//演算法步驟:

//1.為入棧元素e分配空間,用指標p指向;

//2.將新結點資料域置為e;

//3.將新結點插入棧頂;

//4.修改棧頂指標為p;

//鏈棧的入棧實質為鏈式儲存結構中頭插入的使用

status push(linkstack &s,char e)

//鏈棧的出棧

//演算法步驟:

//1.判斷棧是否為空,若空則返回error;

//2.將棧頂元素賦值給e;

//3.臨時儲存棧頂元素的空間,以備釋放;

//4.修改棧頂指標,指向新的棧頂元素;

//5.釋放原棧頂元素的空間;

status pop(linkstack &s,char &e)

//取鏈棧的棧頂元素

//演算法步驟:

//先判斷該棧是否為空,若非空則返回當前棧頂元素的值;

char gettop(linkstack s)

int main()

}return

0;}

資料結構 佇列的鏈式表示和實現

includeusing namespace std typedef int elementtype define error 1 定義節點 typedef struct node qnode 定義front和rear指標 typedef struct linkqueue 出隊演算法 注意含有頭節點...

資料結構棧(鏈式實現)

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

資料結構 共享棧和鏈式結構棧

共享棧其實就是兩個棧,合起來,共享乙個陣列存資料。這樣子的好處就是,兩個棧同乙個空間。當棧1的資料多,棧2資料比較少,就可以這樣子共享,對空間的浪費就會減少。當棧1為空,top1 1 棧2為空,top2 n 關鍵 有兩個棧底,和兩個棧頂top1,top2,從陣列兩端向中間靠攏。當 top1 1 to...