1 棧(stack)是限定盡在表尾進行插入和刪除操作的線性表。
2 棧中允許插入和刪除的一端稱為棧頂(top),另一端稱為棧底(buttom),不含任何資料元素的棧稱為空棧(empty)。
3 棧又稱為後進先出(last in first out)的線性表,簡稱lifo結構。
4 棧的插入操作,叫進棧,也稱壓棧、入棧。
5 棧的刪除操作,叫出棧,也又叫作彈棧。
棧的圖例:
棧順序儲存結構**的實現:
#include
const
int maxsize = 10; //stack size
//stack struction
typedef
struct stack;
//initialize stack
bool initstack(stack **s)
//initialize stack
stack* initstack()
//empty stack
bool emptystack(stack *s)
//push stack
bool push(stack *s, int value)
//pop stack
bool pop(stack *s, int *value)
//test stack
void teststack()
while(true)
printf("\n");
if(emptystack(s))
return ;
}int main(int argc, char *argv)
演算法學習 資料結構2
1 資料結構概述 數結構是計算機中對資料的一種儲存和組織方式,同是也泛指相互之間存在一種或多種特定關係的資料的集合。2 資料結構中的基本概念 資料 data 資料是資訊的載體,其能夠被計算機識別 儲存和加工處理,是電腦程式加強的 原材料 資料元素 data element 資料元素是資料的基本單位,...
資料結構與演算法學習
我想重新學習一下資料結構與演算法,打好基礎。to measure is to know.我們用演算法複雜度t n 來表示演算法的效率,效能。t n 的取值 所有問題規模為n的問題例項中,將他們的計算成本進行總體的比較,取出最壞情況下的值。有幾點需要catch,1.演算法執行的時間,會根據程式語言,作...
資料結構 stack 學習筆記
problem solving with algorithms and data structures 棧 stack 是一種運算受限的線性表 限制是僅允許在表的一端進行插入和刪除運算 新元素的插入和既存元素的刪除發生在同一端 這一端被稱為棧頂,相對地,把另一端稱為棧底 向乙個棧插入新元素又稱作進棧...