棧的定義:
棧又稱堆疊,
是一種特殊的線性表
,限制:先進後出
允許插入和刪除的一端叫做變化的一端 稱為棧頂,
棧頂元素 棧底。
比如把子彈壓入彈夾,裡面的子彈就是先進後出。
棧的順序儲存結構 簡稱順序棧,它是利用一組位址連續的儲存單元依次存放自棧底到棧頂的資料元素。
順序棧的定義及相關操作。
#include#define maxlen 10
typedef int elementtype;
typedef struct//棧的順序儲存結構的定義
sqstack;
sqstack initstack_sq()
/*取棧頂元素 若棧s非空 用*x 返回棧頂元素*/
int gettop_sq(sqstack *s,elementtype *x)
}int push_sq(sqstack *s,elementtype x)
int pop_sq(sqstack * s,elementtype *x)
int empty_sq(sqstack *s)
void print(sqstack s)
}else
printf("the stack is empty");
}main()
print(stack);
gettop_sq(&stack,&z);
printf("element of top is: %d \n",z);
printf("pop 3 element form stack: ");
for(i=1;i<=3;i++)
printf("\n");
print(stack);/*出棧三個元素後的棧*/
}
對於順序棧來說,入棧時 必須首先判斷棧是否滿了,若棧滿,不能入棧,出棧必須首先判斷棧是否為空,若棧空,則不能出棧 C 資料結構與演算法系列 四 棧
棧 stack 在電腦科學中是限定僅在表尾進行插入或刪除操作的線形表。它按照後進先出的原則儲存資料,先進入的資料被壓入棧底,最後的資料在棧頂,需要讀資料的時候從棧頂開始彈出資料 最後乙個資料被第乙個讀出來,它只能在某一端插入和刪除的特殊線性表。用桶堆積物品,先堆進來的壓在底下,隨後一件一件往堆。取走...
C 資料結構與演算法系列(八) 棧(Stack)
棧是乙個先入後出 filo first in last out 的有序列表 根據棧的定義可知,最先放入棧中的元素在棧底,最後放入的元素在棧頂,而刪除元素剛好相反,最後放入的元素最先刪除,最先放入的元素最後刪除 子程式的呼叫 在跳往子程式前,會先將下乙個指令的位址存入堆疊中,直到子程式執行完後再將位址...
資料結構 順序棧
編寫乙個程式,實現順序棧 假設棧中元素型別為char 的各種基本運算。並完成下面功能 1 初始化棧s 2 判斷棧s是否非空 3 依次進棧元素a,b,c,d,e 4 判斷棧s是否非空 5 輸出棧長度 6 輸出從棧頂到棧底元素 7 輸出出棧序列 8 判斷棧s是否非空 9 釋放棧。include incl...