順序棧**
main.c
#include
#include
"sqstack.h"
intmain()
push
(s, data);}
selemtype x;
while(!
isemtpy
(s))
}destroystack
(s);
return0;
}
sqstack.c
#include
#include
#include
"sqstack.h"
//本.c檔案實現順序棧的基本功能函式
/* 功能:初始化乙個空棧
引數:無 返回值
失敗返回null
成功返回棧的頭結點的位址
*/stack *
initstack()
s->top =-1
;//現在是乙個空棧,棧頂元素不存在,所以給乙個不存在的下標
return s;}/*
功能:清空乙個棧
引數:@s 棧的頭結點位址
返回值成功返回0
失敗返回-1
*/int
clearstack
(stack * s)
intdestroystack
(stack * s)
intpush
(stack * s ,selemtype x)
intpop
(stack * s,selemtype * x)
intisemtpy
(stack * s)
intgettop
(stack * s,selemtype * x)
sqstack.h
#ifndef __sq_stack_h__
#define __sq_stack_h__
typedef
int selemtype;
#define max_elem_num 100
struct sqstack
;typedef
struct sqstack stack;
//取別名
/* 功能:初始化乙個空棧
引數:無 返回值
失敗返回null
成功返回棧的頭結點的位址
*/stack *
initstack()
;/*功能:清空乙個棧
引數:@s 棧的頭結點位址
返回值成功返回0
失敗返回-1
*/int
clearstack
(stack * s);/*
功能:銷毀乙個棧
引數:@s 棧的頭結點位址
返回值成功返回0
失敗返回-1
*/int
destroystack
(stack * s);/*
功能:入棧
引數:@s 棧的頭結點位址
@x 待入棧的資料
返回值:
成功返回0
失敗返回-1
*/int
push
(stack * s ,selemtype x);/*
功能:出棧
引數:@s 棧的頭結點位址
@x 乙個指標,指向的記憶體空間用來儲存待出棧元素
返回值:
成功返回0
失敗返回-1
*/int
pop(stack * s,selemtype * x);/*
判斷棧s是否為空,為空返回1,不為空返回0
*/int
isemtpy
(stack * s);/*
功能:獲取棧頂元素
引數:@s 棧的頭結點位址
@x 乙個指標,指向的記憶體空間用來儲存棧頂元素
返回值:
成功返回0
失敗返回-1
*/int
gettop
(stack * s,selemtype * x)
;#endif
資料結構 棧 順序棧和鏈棧
順序棧 基於陣列的順序棧 include include include typedef enum status status typedef int elemtype typedef struct sqstack sqstack 函式宣告 基於陣列的順序棧 status initstack sqs...
資料結構 順序棧和鏈式棧
棧 限定在表尾進行插入和刪除操作的線性表。允許插入和刪除的一端成為棧頂,另一端稱為棧底。棧的操作特性 後進先出 順序棧 設定top指標指示棧頂元素在陣列中的位置。進棧 top 1 棧空 top 1 出棧 top 1 棧滿 top maxsize const int max size 100 temp...
資料結構之順序棧和迴圈佇列
1 順序棧 2 include 3 using namespace std 4const int stacksize 5 5 class seqstack6 18seqstack seqstack 1922 seqstack seqstack 2326 intseqstack empty 2732 ...