最簡單的棧

2021-09-25 21:21:20 字數 1554 閱讀 9055

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...