鏈棧基本操作

2021-07-03 15:20:06 字數 1729 閱讀 4825

棧基本概念:

棧(stack)是限定在表尾進行插入和刪除操作的線性表(或單鏈表)。

//只能在一段進行插入和刪除,因此不存在,在中間進行插入

棧頂(top):允許插入和刪除的一端。而另一端稱為棧底(bottom)

空棧:不含任何資料元素的棧。

後進先出

兩個基本操作:

棧的插入操作(push),叫做進棧,或壓棧,或入棧

刪除操作(pop),叫做出棧,或彈棧

注意鏈棧next指標的指向,與佇列不同:

如果插入乙個元素,它的next指標是指向前乙個已經在棧中的元素的

而佇列則是,插入乙個元素,其next指標是往外指,指向空。

鏈棧的next指標之所以這樣,是方便刪除操作,這一點可以在程式設計的過程中體會到。

以下是**:

#include using namespace std;

typedef struct nodenode;

typedef struct stacklink_stack;

/**建立乙個空棧*/

link_stack * creat_stack()

/**入棧操作:push*/

link_stack * push_stack(link_stack *p,int elem)

/**出棧操作:pop*/

link_stack * pop_stack(link_stack *p)

else

}/**棧的遍歷:輸出棧*/

int show_stack(link_stack *p)

while(null != temp)

cout << endl;

return0;}

int main()

cout << "空棧插入5個元素後:"

<< endl;

show_stack(p);

cout << "刪除3個元素後:"

<< endl;

for(i = 3;i--;)

show_stack(p);

cout << "count:"

<< p->count << endl;

cout << "刪除2個元素後:"

<< endl;

for(i = 2;i--;)

show_stack(p);

cout << "count:"

<< p->count << endl;

push_stack(p,6);

cout << "插入元素6後:"

<< endl;

show_stack(p);

cout << "count:"

<< p->count << endl;

return

0;}

結果如下:

/點滴積累,我的一小步o(∩_∩)o~/

鏈棧基本操作

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

順序棧 鏈棧基本操作

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