受限的線性表 棧 順序棧

2022-04-16 09:07:42 字數 698 閱讀 1464

#include#define maxsize 50 

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