/*
編寫乙個程式,實現鏈棧(假設棧中元素型別為char)的各種基本運算。並完成下面功能:
(1)初始化鏈棧s;
(2)判斷鏈棧s是否非空;
(3)依次進鏈棧元素a,b,c,d,e;
(4)判斷鏈棧s是否非空;
(5)輸出鏈棧長度;
(6)輸出從棧頂到棧底元素;
(7)輸出出鏈棧序列;
(8)判斷鏈棧s是否非空;
(9)釋放鏈棧。
*/#include #include #include #include using namespace std;
typedef char elemtype;
typedef struct linknode
listack; //定義鏈棧型別
void initstack(listack *&s) //初始化鏈棧s
bool stackempty(listack *s) //判斷鏈棧s是否非空
void push(listack *&s,elemtype e) //進棧
int getlength(listack *s) //輸出鏈棧長度
return (i);
}void dispstack(listack *s) //輸出從棧頂到棧底元素
cout
return false;
p=s->next;
e=p->data;
s->next=p->next;
free(p);
return true;
}void destorystack(listack *&s) //釋放鏈棧
}int main()
{ elemtype a[10],b;
listack *s;
initstack(s);
cout<
if(stackempty(s))
cout<
{pop(s,b);
cout執行結果:
資料結構 棧 鏈棧
棧的插入和刪除只在棧頂進行操作,在單鏈表中,頭指標是單鏈表的必須元素 而在棧中,棧頂指標也是鏈棧的必須元素,且一般將棧頂放在單鏈表的頭部。線性表有順序儲存結構和鏈式儲存結構,棧屬於線性表的一種,也具有順序儲存結構和鏈式儲存結構。對於棧的鏈式儲存結構,一般稱之為鏈棧。棧的特點 先進後出 棧函式實現 1...
資料結構 鏈棧
鏈式儲存的棧稱為鏈棧,結構如下圖 鏈棧無滿棧問題,空間可擴充,但有棧空問題,棧空的條件為top next null。進棧與入棧僅在棧頂進行,鏈式棧的棧頂在棧表頭。鏈棧的定義如下 struct stacknode class stack 建立頭結點 stack void push int item 入...
資料結構 鏈棧
include include define maxsize 100 typedef struct linkstnode 定義鏈棧結構體 linkstnode void initstack linkstnode s 初始化順序棧 initiate 英 n ie t 開始,創始,開闢 void des...