資料結構 堆疊的範例程式

2021-07-06 03:04:47 字數 972 閱讀 5819

堆疊本身可以使用靜態陣列結構或動態鍊錶結構實現,只要維持堆疊後進先出和從頂端讀取資料兩個基本原則即可。利用資料結構來實現堆疊的好處是演算法設計簡單,下面將用佇列來模擬堆疊。範例是:以陣列模擬撲克牌的洗牌及發牌過程,以點數取得撲克牌後放入堆疊,放滿52張牌後利用堆疊功能來給4個人發牌。

#include#include#include#includeusing namespace std;

void swap(int *,int *);

void push(int statck,int max,int val);

int pop(int stack);

int top=-1;

int main()

,stack[52]=;

int i,j,k=0;

char ascval;

int style;

srand((unsigned)time(null));

for(i=0;i<52;i++)

card[i]=i+1;

cout<

cout<

cout<

class node

;typedef class node stack_node;//定義堆疊中結點的新型別

typedef stack_node *linked_stack;//定義鍊錶堆疊的新型別

linked_stack top=null;//指向堆疊頂端的指標

//判斷是否為空堆疊

int isempty()

//將指定的資料存入堆疊

void push(int data)

//從堆疊中取出資料

資料結構 堆疊

對於棧,想必大家都十分熟悉了,也能很快的答出棧是乙個先進後出的佇列。但是在平常程式設計的生活中應用的十分少。在acm中,棧是一種十分重要的資料結構 其他領域也一樣 我們可以用這種資料結構解決一些十分棘手的問題,大大提高了程式的效率。有這樣一道名為software bugs 的題。題目的意思簡要來說就...

資料結構 堆疊

引入 多項式計算問題 例如 62 3 42 62 6 2 3 33 3 3 0 042 4 2 8 僅計算最近的兩個數 08 0 8 8 結束 需要某種方式 順序儲存,倒序輸出 堆疊 堆疊 具有操作約束性的線性表 入棧void push stack s,elementtype x else 出棧 e...

資料結構 堆疊

可以認為具有一定約束的線性表,其插入和刪除都作用於棧頂 top 的端點位置。且最 棧的資料最先彈出。壓入棧 push 插入資料 彈出棧 pop 取出 刪除 資料 型別名稱 堆疊 stack 資料物件集 乙個有0個或多個元素的有窮線性表 操作集 對於乙個具體的長度為正整數的maxsize的堆疊s st...