資料結構 棧和佇列 順序棧

2021-10-21 10:55:37 字數 2177 閱讀 9310

順序棧**

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 ...