我對棧的學習

2021-07-05 07:29:36 字數 1305 閱讀 9444

這裡我們說的是資料結構中的棧,是一種先進後出的一種資料管理方式,打個比方就是我們把衣服整理好疊進櫃子,最先折的衣服都放在最下面,等我們要穿的時候就會拿起最上面的那個衣服穿。

1.結構體定義

typedef struct link

node;

typedef struct stack

stack;

這裡需要注意的是bottom是棧底,top是棧頂,資料都是先放棧底,出去是棧頂的資料出去。

2.建立鍊錶和棧

stack *creat_stack()

node * creat_link(int n)

pre->next=null;

return head;

}

3.入棧
void insert_link_to_stack(stack*q,node * head)

else

newp=newp->next;}}

入棧主要是移動top這個指標,跟佇列的rear指標一樣

4.出棧

void delete_stack(stack * q)

else

else

q->top=pnode;

q->top->next=null;}}

}

出棧也是移動top這個指標,首先我們是遍歷到top,然後再把top前面的乙個結點賦值給top,最後free 掉原來的top即可

5.獲得棧的長度

int getlength(stack *q)

while(pnode!=null)

return nlen;

}

6.列印棧的資料
void print_stack(stack * q)

printf("data:");

while(pnode!=null)

// printf("%d",pnode->data);

}

主函式

void main()

**執行效果如下,可以看出,入棧是4  2  1  出了2次棧後,4還在,說明是先入後出

我對學習數學的感覺

我對學習數學的感覺 爬完山,與乙個同事談起學習數學。自覺自己也沒有什麼心得,在數學的海洋裡,我只能被它所淹沒。但作為乙個數學系畢業的學生我不能回答這個問題,又覺得對不起這個畢業證吧!只能把自己所認識的講出來吧。在他認識裡,他覺得在高中階段裡有個學習數學很好的同學的經驗 把課本多看幾次,把知識結構提取...

我對JS佇列的學習

佇列是遵循fifo 先進先出 原則的一組有序的項。佇列在尾部新增新元素,並從頂部移除元素。最新新增的元素必須排在佇列的末尾。在具體應用中通常用鍊錶或者陣列來實現。佇列的操作其實是和棧是差不多的,但是佇列只允許新資料在後端進行新增。1 建立佇列 宣告乙個類 function queue 需要乙個用於儲...

我自己對學習的理解

很多同學在納悶,為什麼覺得自己付出了很多,但是成績依然不理想?其實不同的人對於數學這門課的天份是不一樣的,有的同學付出的不多,但學到的相對比較多,有的則不然。不論怎樣,學習的路很長,不能以一時成敗就裹足不前,要放長線,向遠看,樹立自己的目標,日積月累,相信時間的積累,最後的成果是豐碩的。天下不可能有...