資料結構棧的實現 C語言版

2021-09-29 02:14:44 字數 1062 閱讀 4666

#include

#include

//棧的初始長度

#define stack_init_size 100

//棧滿時,棧的每次增加的大小

#define stackincrement 10

//棧中的資料型別是int

typedef

int selemtype;

//定義棧的棧底指標,棧頂指標,以及棧的容量

typedef

struct

sqstack;

//棧的初始化

sqstack *

initstack()

else

scanf

("%d"

,&n);}

return s;

}//列印棧內所有的元素

void

printall

(sqstack *s)

printf

("\n");

s->base = p;

}//入棧操作

sqstack *

push

(sqstack *s, selemtype e)

//先給棧頂指標所在的位址存值,後指標上移

*s->top++

= e;

return s;

}//出棧操作

sqstack *

pop(sqstack *s)

//獲取棧頂元素

selemtype gettop

(sqstack *s)

}int

main()

printall

(s);

//獲取棧頂元素

printf

("棧頂元素為:");

printf

("%d"

,gettop

(s))

;}

棧只需要兩個指標,分別指向棧頂和棧底,遵循lifo(後進先出)。實現的時候只需要申請一段連續記憶體,然後棧底指標指向首位址,棧頂指標不斷地後移就可以了,入棧出棧,都移動棧頂指標。

資料結構(C語言版) 棧

1 棧 僅在表尾進行插入和刪除操作的線性表。後進先出lifo。1 表尾端 允許插入和刪除的一端 為棧頂,表頭端 不允許插入和刪除的一端 為棧底。2 入棧 插入元素的操作。出棧 刪除棧頂元素 2 棧的兩種儲存表示方式 2 鏈棧 棧的鏈式儲存結構 優點是便於多個棧共享儲存空間和提高效率。3 括號匹配檢驗...

資料結構(C語言版)

用棧實現數字的進製轉換 10轉8 棧 限定只能在表尾進行插入或者刪除操作的線性表 特點 先進後出 儲存表示方法 順序棧和鏈棧 本文用的順序棧 實現 readonly name code class c include include define stack init size 100 儲存空間初始...

資料結構與演算法(C語言版) 棧

棧是一種常用的資料結構,棧常用在系統軟體和或者演算法中。棧使用陣列來做順序棧,鏈式站用鍊錶來做。今天使用動態陣列來設計棧。棧,後進先出 lifo 先進後出 filo push,進棧 pop,出棧 peek,看一下棧頂 我使用的是vs ultimate2013 新建乙個空專案,在標頭檔案裡面新增兩個標...