stack是一種特殊的線性表,是一種只允許在表的一端進行插入操作或者是刪除操作的線性表(現實生活中的拿取盤子,在一疊盤子的上方選擇拿和取)
特點:後進先出
初始化棧initstack(),構造乙個空棧
判斷乙個是否為空isempty(s)
銷毀張destroystack(s)
進棧操作push(s,x)
退棧操作pop(s)
讀取棧頂元素gettop(s)
#include#include#define stackinitsize 100//給訪問棧分配100個元素的儲存空間
typedef int stackelemtype;//使用typedef關鍵字,將stackelemtype定義成int型別
typedef structseqstack;
/* seqstack是這個順序棧結構體的名字,要定義乙個順序棧:seqstack *s; 就可以了。
1可以這麼理解: 你定義了乙個 人 的結構體,要宣告李磊是人 :人 *李磊;
2為什麼要使用指標? 因為使用指標是元素位址聯絡在一起的,這樣操作它的值,
才會是本質的改變
3結構體裡面是什麼:是這個結構體需要具備的特性,
就如你定義了 人 這個結構體,你按照你的需求可能需要在結構體中宣告它的特性,
如:人會說話,會思考。。。
*/ //順序棧的初始化
seqstack *initstack()
else
}//判斷順序棧是否為空
int isempty(seqstack *s)
//銷毀棧
void destroystack(seqstack *s)
//進棧操作
void push(seqstack *s, stackelemtype x)
else
return;
} //退棧操作
stackelemtype pop(seqstack *s)
else
}//讀取棧頂元素
stackelemtype gettop(seqstack *s)
else
} //遍歷棧中的所有元素並輸出
void display(seqstack *s)
} int main()
printf("將所有元素遍歷一遍:\n");
display(stack);
printf("棧頂元素出棧");
pop(stack);
printf("\n第二次棧頂元素出棧");
pop(stack);
printf("\n將999壓入棧:");
push(stack,999);
printf("當前棧頂元素=%d\n",gettop(stack));
display(stack);
printf("\n銷毀棧!");
destroystack(stack);
return 0;
}
C語言 壓棧的最簡單實現
剛開始學資料結構還有很多沒能理解,中少了很多功能 出棧操作,判斷棧空.陣列實現棧的功能也可以嘗試 先這麼寫了,之後會陸續更新!include include include typedef struct node 定義節點 node,pnode typedef struct stack 定義棧結構體...
最簡單的加密
最簡單的加密 package com.util 類 介面的目的 作用 功能 繼承於何種父類,實現的介面 實現的演算法 使用方法 示例程式.version v1.0 2012 3 22 author xiahui public class encrypt system.out.print 加密 s n...
最簡單的makefile
hello.c的內容如下 include int main makefile 的內容如下 hello.exe hello.o gcc o hello.exe hello.o hello.o hello.c gcc c hello.c clean rm hello.o hello.exe window...