程式小白天天打卡(順序棧的基礎使用)

2021-08-15 13:21:34 字數 1330 閱讀 1873

2018/2/9

資料結構

1.關於棧的簡單認識

1.棧本質上也是一種線性表,只不過規定只能在表尾進行修改

2.棧資料的順序是後進先出(last in first out)

2.基本操作

1,對棧的定義

1.對於定義棧,需要指向棧底的頭指標top和指向棧頂的尾指標base和棧的最大可容量

typedef struct

sqstack;

2.對棧的建立

注意怎樣動態分配空間

/*建立乙個棧*/

#define stack_init_size 100//棧的初始化空間為100

void initstack(sqstack *s)

else

}

3.入棧

注意判斷動態分配空間的情況

/*入棧操作*/

#define satckincremrnt 10//追加空間

void push(sqstack*s, elemtype e)

s->top = s->base + s->stacksize;//動態分配空間後棧頂指標的位置

s->stacksize = s->stacksize + satckincremrnt;

} *(s->top) = e;

s->top++;//top指標位置++

}

4.出棧

/*出棧操作*/

void pop(sqstack*s, elemtype *e)

5.清空棧

s->top=s->base

/*清空乙個棧*/

//就是將棧的元素全部作廢,但是棧本身的物理空間沒有改變;

void clearstack(sqstack *s)

6.完全銷毀棧

迴圈free掉s->base,再把s->top=s->base=null,注意把棧的容量調為0

void destroystack(sqstack *s)

s->base = s->top = null;

s->stacksize = 0;

}

7.返回棧的容量

棧的容量等於s.top-s.base

int stacklen(sqstack s)

程式小白天天打卡

2018 1 17 資料結構 演算法 1.演算法和資料結構的關係和密切,演算法作為乙個程式中的靈魂,作為乙個程式設計小白,還是得了解一下它的特徵的 2.演算法官方定義是解決特定問題的步驟,在計算機中表示為指令的有限序列,每個指令中包括1個或者多個操作 3.演算法按民間的說法就是解決問題的技巧和方式 ...

程式小白天天打卡

2018 1 20 資料結構 線性表的兩種物理儲存結構 順序儲存結構和鏈式儲存結構 1.順序儲存結構 1 1 用一段位址連續的儲存單元來依次儲存線性表的資料元素 1 2 物理上的儲存方式就是帶記憶體中找乙個初始的位址,通過佔位的方式,把一定的記憶體空間給占用了,然後把相同資料型別的資料元素放在空間中...

程式小白天天打卡

2018 1 25 資料結構 1.關於鍊錶的全表增添操作 1.思路 採用迴圈的方法在表頭處增添結點 2.對一些 的注釋 1.malloc sizeof 這是用來動態分配記憶體 可以強制轉換 2.srand time 0 這是用來建立隨機數種子,來建立不同的隨機數 3.思路 1.建立指向頭結點的指標和...