一一計畫(Day 2 )鏈式棧

2021-10-20 18:28:26 字數 1724 閱讀 3195

顧名思義這裡的棧是與煉表相掛鉤,因為鍊錶和棧有個共同的性質就是先進後出,所以寫法與鍊錶相似

1.寫出棧的資料結構

2.建立棧也就是初始化過程

3.寫出節點的資料結構(因為入棧前得要用東西可以入到棧裡面)

4.建立節點

5.入棧(也就是插入節點寫法與鍊錶相同)

6.獲取棧頂元素

7.出棧(也就是刪除節點寫法與鍊錶相同)

8.萬金油函式,判斷是否為空

#include

#include

#define null 0

struct node//節點資料結構型別

;//建立節點

struct node*

createnode

(int date)

struct stack //棧資料結構型別

;//建立棧

struct stack*

createstack()

//建立過程就是初始化過程

//插入節點

void

push

(struct stack* mystack,

int date)

//獲取棧頂元素

inttop

(struct stack* mystack)

return mystack->stacktop->date ;

}//出棧 就是鍊錶的刪除

void

pop(

struct stack* mystack)

else

}//萬金油函式判斷棧是不是為空

intempty

(struct stack* mystack)

intmain()

printf

("\n");

system

("pause");

return0;

}

剛開始對於資料結構很不熟悉,但是因為熟能生巧嘛,學會了單項鍊表和雙向鍊錶,在學習鏈式棧就輕鬆很多,也能馬上理解

同理可以得出鏈式佇列方法一樣

**如下

#include

#include

#define null 0

struct node

;struct node*

createnode

(int date)

struct queue

;struct queue*

createqueue()

void

push

(struct queue* myqueue,

int date)

//入隊

else

myqueue->size++;}

void

pop(

struct queue* myqueue)

//出隊

else

}int front (

struct queue* myqueue)

return myqueue->frontnode->date;

}int

empty

(struct queue* myqueue)

intmain()

printf

("\n");

system

("pause");

return0;

}

一一計畫(Day 2)雙向鍊錶

1.單向鍊錶因為只有乙個指標指向下乙個指標,所以只能從前往後找,速度慢 2.為了更迅速,於是就在加了乙個前指標,也就變成了雙向鍊錶 1 新節點的前指標指向上乙個節點 2 新 節點的後指標指向下乙個節點 3.兩者寫法基本相似,重點要畫圖理解雙向鍊錶的含義 include include define ...

一一計畫(Day 20)

淦 知識太少了,看別人的 看不懂,自己的 只能通過20 自己的思路 貪心 先搶救剩餘時間最少的建築,所以先從小到大排序,然後用sum來統計已經消耗的時間,滿足條件為 搶救改建的時間 已經消耗的時間是否大於搶救該建築所需要的時間 include void quicksort int a,int b,i...

一一計畫(Day 4)今日學習

原先報了英語口語的,為了以後能再找工作上提供一些幫助.自己也學習了一期課程,效果確實是有,但有點不喜歡他們表演的授課形式。原先的自己又報了後兩期的課程共1w 但現在發現精力不夠,而且價效比不是很高,因此我決定嘗試自學,採用自己與自己對話的方式以及看瑞克和莫蒂去模仿,同樣也能學習語音語調.一定要努力學...