#include#define maxsize 50typedef int datatype;
using namespace std;
//棧的資料結構
//順序棧
/* 資料運算:
1.初始化乙個空棧:初始指標==-1
2.資料元素入棧:如果棧沒滿,資料元素入棧
3.資料元素出棧:如果棧沒空,資料元素出棧
4.得到棧頂元素:如果棧沒空,取棧頂元素
5.銷毀順序棧
判斷條件
1.棧空 s.top==-1
2.棧滿 s.top=maxsize-1
3.入棧語句:s.top先加,資料元素在入棧 s.data[++s.top]=x
4.出棧語句:資料元素先出棧,s.top後-- x=s.data[s.top--]
*/typedef struct nodesqstack;
//初始乙個空棧
void initstack(sqstack &s)
//判斷棧是否為空
bool stackempty(sqstack &s) }
//入棧,要判斷棧是不是滿了
bool push(sqstack &s,datatype x){
if(s.top==maxsize-1){
cout<<"棧滿了!無法入棧"<
20 受限線性表 棧
棧也是一種線性表,棧中的元素具有線性關係,只不過它是一種特殊的線性表而已,也就是說,棧是一種只能在棧頂的位置進行插入和刪除操作的線性表。圖1 棧的基本操作 棧的插入操作,叫做進棧,也稱為壓棧。類似子彈入彈夾,棧的刪除操作,叫做出棧,也有的叫做弾棧,退棧。如同彈夾中的子彈出夾。對於棧中的a,b,c,d...
線性表(二) 棧之順序棧
一 定義棧的基類 棧的基類 template class stack 判斷棧是否為空 virtual bool empty 0 棧中元素的大小 virtual size t size 0 獲取棧頂元素 virtual t top 0 彈出棧頂元素 virtual t pop 0 入棧 virtual...
c語言 棧(受限制線性表)
它的特殊之處在於限制了這個線性表的插入和刪除的位置,它始終只在棧頂進行。這也 就使得棧底是固定的,最先進棧的只能在棧底。棧的插入操作,叫做進棧,也成壓棧。類似子彈入彈夾 棧的刪除操作,叫做出棧,也有的叫做彈棧,退棧。如同彈夾中的子彈出夾 用陣列實現棧 pragma once include incl...