執行截圖:
1)棧空條件:lst->next==null
2)棧滿條件:通常不存在
3)元素入棧:p 為申請的節點,p->data=x;
p->next=lst->next;
lst->next=p;
注: p變為棧頂指標,指標指向是從上往下所以 p->next=lst->next;
4)元素出棧: p=lst->next;
x=p->data;
lst->next =p->next;
free§;
typedef
struct linknodelinkstack;
//初始化棧的演算法
void
initstack
(linkstack *
&lst)
//判斷棧是否為空
intstackempty
(linkstack *lst)
//入棧操作
void
push
(linkstack *
&lst,
int&x)
//出棧操作
intpop
(linkstack *
&lst,
int&x)
//取棧頂元素
intgop
(linkstack *
&lst,
int&x)
//列印想入棧元素棧內元素
void
printelement
(linkstack *lst)
printf
("\n");
}// 求棧的長度
intlength
(linkstack *lst)
return i;
}int
main()
return0;
}
鏈棧基本操作
棧基本概念 棧 stack 是限定在表尾進行插入和刪除操作的線性表 或單鏈表 只能在一段進行插入和刪除,因此不存在,在中間進行插入 棧頂 top 允許插入和刪除的一端。而另一端稱為棧底 bottom 空棧 不含任何資料元素的棧。後進先出 兩個基本操作 棧的插入操作 push 叫做進棧,或壓棧,或入棧...
鏈棧基本操作
棧 stack 是限定在表尾進行插入和刪除操作的線性表 或單鏈表 只能在一段進行插入和刪除,因此不存在,在中間進行插入 棧頂 top 允許插入和刪除的一端。而另一端稱為棧底 bottom 空棧 不含任何資料元素的棧。後進先出 棧的插入操作 push 叫做進棧,或壓棧,或入棧 刪除操作 pop 叫做出...
順序棧 鏈棧基本操作
include stdafx.h include stdio.h include stdlib.h define stack max size 7 int stackdata stack max size define stack max size 14 int stackdata stack ma...