棧(普通棧及鏈棧)

2021-09-12 14:41:26 字數 830 閱讀 1749

//palist->t來表示當前的資料下標,即可以模擬先進後出的特性

//棧資料結構體(最大值,指示當前棧中數的個數t,所存資料型別的指標s)

struct seqstack;

//基本操作壓棧

void push_seq(pseqlist pastack, datatype x)

}void  pop_seq(pseqlist pastack/* arguments */)

//取棧頂元素

datatype top_seq(pseqlist pastack)

//____________以下為鏈棧實現演算法___________________//

//鏈棧的資料結構體(info為棧中資料元素,link統一指向下乙個info)

struct node;

typedef struct node* pnode;

struct node

struct linklist

typedef struct linklist *plinkstack;

plinkstack createemptystack_link(void) //建立空的鏈棧

int isemptystack_link(plinkstack plstack)    //判斷鏈棧是否為空

void push_link(plinkstack plstack,datatype x)  //壓棧(與普通的略有不同)

else

}void pop_link(plinkstack plstack)//彈棧

}datatype top_link(plinkstack plstack) // 返回棧頂元素

棧,順序棧,鏈棧

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

棧 順序棧 鏈棧

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

順序棧及鏈棧常用方法

儲存結構定義 typedef int elemtype typedef enum statusstatus typedef struct sqstacksqstack 初始化棧 順序棧 基於陣列的 status initstack sqstack s,int sizes 初始化 s top 1 s ...