資料結構 順序棧ADT

2021-10-05 05:32:06 字數 3136 閱讀 3392

抽象資料型別(abstract data type,adt)是電腦科學中具有類似行為的特定類別的資料結構的數學模型;或者具有類似語義的一種或多種程式語言的資料型別。抽象資料型別是間接定義的,通過其上的可執行的操作以及這些操作的效果的數學約束(與可能的代價)。——維基百科

#ifndef stack_h_included

#define stack_h_included

typedef

enum status

status;

typedef

int elemtype;

typedef

struct sqstack

sqstack;

// 基於陣列的順序棧

status initstack

(sqstack *s,

int sizes)

;// 初始化棧

status isemptystack

(sqstack *s)

;// 判斷棧是否為空

status gettopstack

(sqstack *s,elemtype *e)

;// 得到棧頂元素

status clearstack

(sqstack *s)

;// 清空棧

status destroystack

(sqstack *s)

;// 銷毀棧

status stacklength

(sqstack *s,

int*length)

;// 檢測棧長度

status pushstack

(sqstack *s, elemtype data)

;// 入棧

status popstack

(sqstack *s, elemtype *data)

;// 出棧

status printstack

(sqstack *s)

;// 實時列印順序棧

intinputnumber()

;// 輸入整數檢測

#endif

#include

#include

#include

"sqstack.h"

intmain()

flag =1;

break

;case2:

if(flag ==1)

else

break

;case3:

if(flag ==1)

else

break

;case4:

if(flag ==1)

else

break

;case5:

if(flag ==1)

else

break

;case6:

break

;case7:

if(flag ==1)

else

break

;case8:

if(flag ==1)

else

break

;case9:

printf

("\nbyebye~");

exit(0

);break

;default

:printf

("no such option.\n");

}system

("pause");

}return0;

}

#include

#include

#include

"sqstack.h"

// array-based sequential stack.

status initstack

(sqstack *s,

int sizes)

else

}status isemptystack

(sqstack *s)

printf

("not empty.\n");

return error;

}status gettopstack

(sqstack *s, elemtype *e)

else

}status clearstack

(sqstack *s)

else

}status destroystack

(sqstack *s)

else

}status stacklength

(sqstack *s,

int*length)

else

}status pushstack

(sqstack *s, elemtype data)

else

}status popstack

(sqstack *s, elemtype *data)

else

}// 實時列印順序棧

status printstack

(sqstack *s)

else

if(s ==

null

|| s->top ==-1

)for

(int i=

0; i<=s->top; i++

)printf

("\n");

return success;

}// 輸入整數檢測

資料結構 棧ADT

棧 stack 是限定僅在表尾插入和刪除操作的線性表 允許插入和刪除的一端稱為棧頂 top 另一端稱為棧底 bottom 我們可以模擬手槍彈夾,瀏覽器的後退和前進等等都是棧 棧的插入操作,稱為進棧,也稱壓棧 入棧 push 棧的刪除操作,稱為出棧,也稱為彈棧 pop 棧本身就是乙個線性表,線性表的順...

資料結構 鏈棧ADT

抽象資料型別 abstract data type,adt 是電腦科學中具有類似行為的特定類別的資料結構的數學模型 或者具有類似語義的一種或多種程式語言的資料型別。抽象資料型別是間接定義的,通過其上的可執行的操作以及這些操作的效果的數學約束 與可能的代價 維基百科 ifndef stack h in...

資料結構 回顧棧ADT和隊ADT

1.簡單的說,棧就是只在乙個位置上進行插入和刪除操作的表,而這個特殊的位置就是表的末端,但這卻不被成為棧的末端,而是頂 top 2.棧的基本操作時進棧和出棧,英文名分別是push和pop,分別相當於插入和刪除。切記對空棧進行pop和top操作在棧adt被認為是錯誤的,而如果push在空間之外進行操作...