棧,也是一種表結構,特點是先進後出。實現方式也有兩種:陣列和鍊錶。本文主要是複習,老鳥跳過!具體主要包括以下操作:
stack createstack(void);
int isempty(stack s);
//int isfull(stack s);//鏈式stack可以不斷申請space
void makeempty(stack s);
elementtype pop(stack s);
elementtype top(stack s);
void push(elementtype e,stack s);
void print(stack s);
一、建立stack
以鏈式結構為例,先新建乙個空的stack,也就是新建乙個表頭節點(好處在於插入和刪除操作更方便)。示例**如下:
// 建立stack
stack createstack(void)else
return s;
}
二、入棧操作,對應於push函式。主要是將元素壓入棧中。示例**如下:
//push
void push(elementtype e,stack s)else
}
三、出棧操作,對應於pop函式,主要是將棧頂元素彈出。示例**如下:
//pop
elementtype pop(stack s)else
return e;
}
四、判斷棧是否為空。也就是鍊錶是否為空。示例**如下:
//判斷是否為空
int isempty(stack s)
資料結構之 棧 複習
棧 先進後出的線性表 棧也可以通過順序儲存和鏈式儲存的方式實現 一 順序儲存實現 陣列的尾端作為棧頂 實現 package org.xiazdong.list public class myarraystack public void push t e top if top t.length t t...
資料結構複習之 棧
棧 先進後出的線性表 棧也可以通過順序儲存和鏈式儲存的方式實現 陣列的尾端作為棧頂 實現 package org.xiazdong.list public class myarraystack public void push t e top if top t.length t top e publ...
複習 資料結構 棧和佇列
鏈佇列 include include define elemtype char define maxsize 100 typedef struct node 定義節點型別 snode typedef struct lqueue void initqueue lqueue qu void enque...