C語言資料結構之順序棧

2021-10-23 12:50:10 字數 1744 閱讀 6729

tips:前些天學習了順序表的一系列操作,今天來看看c語言資料結構之順序棧的實現以及關於順序棧的各種操作。

棧的特點是先進後出,後進先出,在陣列中可利用乙個指向陣列下標指標top來進行順序棧的相關操作。

首先我們定義乙個順序棧的結構體

#define maxsize 10 

//給順序棧定義預設大小

typedef

struct

stack,

*pstack;

準備棧中元素列印輸出函式

//列印棧中元素

void

print_stack

(pstack s)

else

}printf

("-------------------------------------------\n");

}

1、棧的初始化(initstack)

//初始化棧

void

initstack

(pstack s)

2、入棧(push)思路:

具體實現:

//入棧

void

push

(pstack s,

int e)

else

}

3、出棧(pop)思路:

具體實現:

//出棧

void

pop(pstack s)

else

}

4、返回棧頂元素(gettop)思路:

具體實現:

//返回棧頂元素

intgettop

(pstack s)

else

}

5、判斷棧空(stackempty)思路:

具體實現:

//判斷棧空

intstackempty

(pstack s)

else

}

到此我們就完成了順序棧的基本操作,還是很簡單的! 下面在main()函式中測試一下:
int

main()

print_stack

(s);

//返回棧頂元素並且判斷棧是否為空if(

stackempty

(s))

else

//出棧

while

(printf

("是否出棧?(y/n):"),

scanf

("%c"

,&panduan)

)else

if(panduan ==

'y')

else

print_stack

(s);}}

return0;

}

測試結果:

希望對大家的學習能夠有所幫助,加油!

tips:世上沒有白費的努力,更沒有碰巧的成功,不要揠苗助長,不要急於求成,只要一點一點去做,一步步去走,成功,不過是水到渠成。

C語言資料結構 順序棧

順序棧為具有特殊運算操作的順序表,資料通過棧頂先進先出。棧的資料空間和陣列類似儲存固定的一類資料。儲存在連續的空間中,通過出棧和入棧來進行資料操作。具體看下面的函式實現 include define stacksize 20 定義順序棧結構 typedef structseqstack 初始化 vo...

C 資料結構 棧之順序棧

棧 stack 是一種只允許在一端進行插入或刪除操作的線性表。棧頂 top 是允許進行插入刪除的一端。棧底 bottom 是固定不允許插入刪除的一端。棧的操作特性概括為後進先出 last in first out,lifo 相關知識 c 結構體 c 指標 c 引用 線性表之順序表 假定線性表的元素型...

資料結構之棧的實現 順序棧 C語言

學習參考 嚴蔚敏 資料結構 c語言版 要點 基本操作 入棧 出棧讀棧頂元素值 建棧棧滿 棧空清空棧 銷毀棧 實現 棧結構定義 typedef struct seqstack,pstack 建棧 int initstack pstack s,int size 棧滿 int stackfull psta...