順序棧(Visual Studio實現)

2021-10-06 19:38:32 字數 1203 閱讀 7085

利用順序儲存方式實現的棧稱為順序棧。類似於順序表的定義,棧中的資料元素用乙個預設的足夠長度的一維陣列來實現:datatype data[maxsize],棧底位置可以設定在陣列的任乙個斷點,而棧頂是隨著插入和刪除而變化的,用乙個 int top來作為棧頂的指標,指明當前棧頂的位置,同樣將data和top封裝在乙個結構中

通常將0下標端設為棧底,這樣空棧時棧頂指標為-1,入棧時,棧頂指標加1,即s->top++,出棧時,棧頂指標減1,即s->top–.

stack.h標頭檔案

#pragma once

# define maxsize 100

typedef int datatype;

typedef struct

seqstack;

//置空棧

seqstack *

init_seqstack()

//判空

intempty_seqstack

(seqstack *s)

else

}//入棧

intpush_seqstack

(seqstack *s, datatype x)

else

}//出棧

intpop_seqstack

(seqstack *s, datatype *x)

else

}//取棧頂元素

datatype top_seqstack

(seqstack *s)

else

}

原始檔:

#include

#include

#include

#include "stack.h"

intmain()

x1 =

top_seqstack

(stack1)

;printf

("棧頂的資料元素為:%d\n"

, x1)

;//全部出棧的順序

棧,順序棧,鏈棧

棧作為一種限定性線性表,是將表的插入刪除限制為僅在表的一端進行,通常將表中允許插入刪除的一端叫做棧頂 top 因此棧頂的當前位置是動態變化的。棧的另一端叫做棧底 bottom 當棧中沒有元素時稱為空棧。插入操作稱為進棧或入棧,刪除操作稱為出棧或退棧。棧是先進後出的線性表,簡稱為lifo表。棧主要有兩...

棧 順序棧 鏈棧

棧 順序棧 鏈棧 分別用順序表和煉表實現棧,完成入棧 出棧 窺探棧頂元素等操作 commom.h ifndef common h define commom h include include include include include define elemtype int void swap...

棧之順序棧

資料結構草草學過,不過沒有認真運用過。雖然知道一些最為基本的抽象型別及一些常用操作,不過叫我把這些基本的演算法寫出來我也是寫不出來的。因為常說資料結構 演算法是乙個程式設計師最基本的素質,所以這次認真加以複習。在複習的同時我盡量將自己學習的其他的一些基本知識比如c 中的物件導向思想也引入進來,同時也...