棧,順序棧,鏈棧

2021-09-14 06:57:39 字數 961 閱讀 4475

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

棧主要有兩種基本的儲存結構:順序儲存結構和鏈式儲存結構。簡稱順序儲存的棧為順序棧,鏈式儲存的棧為鏈棧。

儲存結構

#define stack_size 50

typedef structseqstack;

1.初始化

void initstack(seqstack *s)
2.進棧

int push(seqstack *s, stackelementtype x)
3.出棧

int pop(seqstack *s, stackelementtype *x)

}

3.讀棧頂元素

int gettop(seqstack *s, stackelementtype *x)

}

儲存結構

typedef struct nodelinkstacknode;

typedef linkstacknode *linkstack;

1.初始化

void initstack(linkstack *s)
2.進棧

int push(linkstack top, stackelementtype x)
3.出棧

int pop(linkstack top, stackelementtype *x)

棧 順序棧 鏈棧

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

順序棧,鏈棧

二,鏈棧 public inte ce istack public class seqstack implements istack 將棧置空 public void clear 判斷棧是否為空 public boolean isempty 返回棧中元素的個數 public intlength 返回...

棧結構 順序棧 鏈棧

定義 棧是一種與線性表相似的線性結構。不同之處是當需要對節點做增刪操作時,只能操作棧頂的節點,因此具有先進後出 或者後進先出 的特點。按儲存結構的不同,可分為順序棧和鏈棧。棧結構的幾個屬性 adt stack elemtype為型別識別符號 資料關係 r 資料操作 1 stackseq initst...