抽象資料型別(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在空間之外進行操作...