1、定義
只能在固定一端進行插入和刪除操作的線性表
2、相關概念
*棧頂:允許進行刪除和插入操作的一端
*棧底:不允許進行刪除和插入操作的一端
3、**
stack.h
#ifndef stack_h
#define stack_h
#include
#define true 1
#define false 0
#define maxsize 10
typedef
int status;
typedef
int datatype;
typedef
struct stackstack;
intgetstacklength
(stack s)
;//獲取棧的長度
status initiatestack
(stack *s)
;//初始化棧
status pushstackdata
(stack *s, datatype elem)
;//入棧
status popstackdata
(stack *s, datatype *d)
;//出棧
status ifstackisempty
(stack s)
;//判斷棧是否為空
status getstackelement
(stack s, datatype *elem)
;//獲取棧中的元素
#endif
// mainwindow_h
stack.c
#include
"stack.h"
//初始化棧
status initiatestack
(stack *s)
//獲取棧的長度
intgetstacklength
(stack s)
//入棧
status pushstackdata
(stack *s, datatype elem)
else
}//出棧
status popstackdata
(stack *s, datatype *d)
else
}//判斷棧是否為空
status ifstackisempty
(stack s)
//獲取棧中的元素
status getstackelement
(stack s, datatype *elem)
else
}
main.c
#include
"stack.h"
intmain
(int argc,
char
*ar**)
getstackelement
(mystack,
&x);
printf
("當前棧頂資料元素為:%d\n"
, x)
;printf
("依次出棧的資料元素序列如下:\n");
while
(ifstackisempty
(mystack)
)return0;
}
棧結構 順序棧 鏈棧
定義 棧是一種與線性表相似的線性結構。不同之處是當需要對節點做增刪操作時,只能操作棧頂的節點,因此具有先進後出 或者後進先出 的特點。按儲存結構的不同,可分為順序棧和鏈棧。棧結構的幾個屬性 adt stack elemtype為型別識別符號 資料關係 r 資料操作 1 stackseq initst...
棧 棧的順序儲存結構 SqStack
棧的順序儲存結構 功能 包含 1 棧的資料結構定義 2 棧的建立 初始化 5 往棧中插入元素 6 刪除棧頂元素 注意 不進行debug,只實現基本功能 author tmw date 2018 3 9 include include include define maxsize 100 define...
棧的順序儲存結構
標頭檔案 函式的宣告 include include include define stacksize 100 typedef int elemtype typedef struct seqstack void initstack seqstack s 初始化棧 int stackempty seq...