關於順序棧的初始化,進棧,出棧,棧滿,棧空的操作

2021-06-20 23:22:21 字數 723 閱讀 2875

本程式在vc環境下執行。順序棧比較簡單。本程式只是插入乙個資料之後直接刪除該資料。不夠完善請原諒。

seqstack.h檔案。

#include

#include

#define maxsize 50

#define false 0;

#define true 1;

typedef structseqstack;

seqstack.cpp檔案。

#include "seqstack.h"

//順序棧的初始化

int initseqstack(seqstack *s)

//判斷棧滿

int isfull(seqstack s)else

}//判斷棧空

int isempty(seqstack s)else

}//進棧

int push(seqstack *s,int data)else

}//出棧

int pop(seqstack *s,int *data)else

}void main()else

printf("\n");

if(pop(&s,&data))else

printf("\n");

}執行結果如下:

請輸入要插入的資料:23

成功插入資料。

刪除的資料是:23

press any key to continue

多棧共享技術,雙端棧的初始化 進棧 出棧操作

棧的應用非常廣泛,經常會出現乙個程式中需要同時使用多個棧的情況。若使用順序棧,會因為對棧空間大小難以準確估計,從而產生有的棧溢位 有的棧空間還很空閒的情況。為了解決這個問題,可以讓多個棧共享乙個足夠大的陣列空間,通過利用棧的動態特性來使其儲存空間互相補充,這就是多棧的共享技術。在順序棧的共享技術中,...

棧 進棧,出棧指標修改的順序問題

策略 設計乙個順序棧,附設的top指標有兩種策略 借助一篇文章深入分析二者的異同。top指向棧頂 首先令top指向當前棧頂元素,這樣進來乙個新的元素時,新元素不能佔據當前top指向的位置,需要把top指標挪一挪,一般是top 但不排除題目中設計的是top 不管怎樣,都是把top指標往棧外拓展乙個空位...

進棧出棧規則

先弄個例子 已知元素的入棧順序為abcde,則下列哪種出棧順序是不可能的 出棧和入棧操作可交叉進行 a edcba b cabde c dcbae d bcdea 先進後出,後進先出 在原序列中相對位置比它小的,必須是逆序 在原序列中相對位置比它大的,順序沒有要求 以上兩點可以間插進行。a選項正確 ...