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.建立指向頭結點的指標和...