棧 順序結構

2021-09-26 13:21:22 字數 1713 閱讀 7013

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