利用順序儲存方式實現的棧稱為順序棧。類似於順序表的定義,棧中的資料元素用乙個預設的足夠長度的一維陣列來實現: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 中的物件導向思想也引入進來,同時也...