鏈棧的進棧操作

兩個步驟即可完成
服務器君一共花費了160.053 ms進行了5次數據庫查詢,努力地為您提供了這個頁面。
試試閱讀模式?希望聽取您的建議

鏈棧的操作絕大部分都和單鏈表類似,只是在插入和刪除上,特殊一些。

  • 我先畫一個圖了解鏈棧的進棧過程……圖畫完了,如下。假設元素值為e的新結點是s, top為桟頂指針……那么我分析下過程,首先開辟一個內存空間給 s,然后 s的data就是e,再將新結點s 的后繼賦值為當前結點 S->top。最后將棧頂指針指向結點 s。
  • 嗯,其實就是兩步。第一,處理新結點s的后繼,這個后繼就是原本的棧頂結點。第二,將棧頂指針 top 重新指向新結點s就行了。

根據討論結果,可以很方便地設計出進棧函數。

/* 插入元素e為新的棧頂元素 */
Status Push(LinkStack *S,SElemType e)
{
    LinkStackPtr s=(LinkStackPtr)malloc(sizeof(StackNode));
    s->data=e;
    s->next=S->top;	/* 把當前的棧頂元素賦值給新結點的直接后繼,見圖中① */
    S->top=s;         /* 將新的結點s賦值給棧頂指針,見圖中② */
    S->count++;
    return OK;
}

完整的程序執行代碼等下一篇講完遍歷與初始化再給出。

延伸閱讀

此文章所在專題列表如下:

  1. 棧的定義與大概理解
  2. 棧的抽象數據類型ADT
  3. 順序棧:棧的順序存儲結構
  4. 順序棧的進棧操作
  5. 順序棧的出棧操作
  6. 獲取順序棧的棧頂元素
  7. 鏈棧:棧的鏈式存儲結構
  8. 鏈棧的進棧操作
  9. 鏈棧的初始化與遍歷
  10. 鏈棧的出棧操作
  11. 鏈棧的置空操作與判斷鏈棧是否為空
  12. 為什么要使用棧這種數據結構
  13. 遞歸,棧的重要應用之一
  14. 棧是如何實現遞歸的
  15. 接觸后綴表達式(逆波蘭表示法)
  16. 圖解后綴表達式的計算過程
  17. 將中綴表達式轉化為后綴表達式
  18. 開始學習隊列這個數據結構
  19. 隊列的抽象數據類型ADT
  20. 順序隊列:隊列的順序存儲結構
  21. 順序隊列的入隊操作
  22. 順序隊列的出隊操作
  23. 順序隊列置空與判斷操作
  24. 隊列順序存儲結構的不足
  25. 關于循環隊列的一些講解
  26. 鏈隊列:隊列的鏈式存儲結構
  27. 鏈隊列的初始化操作
  28. 鏈隊列的入隊操作
  29. 鏈隊列的出隊操作
  30. 補完鏈隊列的其它常見操作
  31. 循環隊列與鏈隊列的優劣勢

本文地址:http://www.snpmgr.live/librarys/veda/detail/2291,歡迎訪問原出處。

不打個分嗎?

轉載隨意,但請帶上本文地址:

http://www.snpmgr.live/librarys/veda/detail/2291

如果你認為這篇文章值得更多人閱讀,歡迎使用下面的分享功能。
小提示:您可以按快捷鍵 Ctrl + D,或點此 加入收藏

閱讀一百本計算機著作吧,少年

很多人覺得自己技術進步很慢,學習效率低,我覺得一個重要原因是看的書少了。多少是多呢?起碼得看3、4、5、6米吧。給個具體的數量,那就100本書吧。很多人知識結構不好而且不系統,因為在特定領域有一個足夠量的知識量+足夠良好的知識結構,系統化以后就足以應對大量未曾遇到過的問題。

奉勸自學者:構建特定領域的知識結構體系的路徑中再也沒有比學習該專業的專業課程更好的了。如果我的知識結構體系足以囊括面試官的大部分甚至吞并他的知識結構體系的話,讀到他言語中的一個詞我們就已經知道他要表達什么,我們可以讓他坐“上位”畢竟他是面試官,但是在知識結構體系以及心理上我們就居高臨下。

所以,閱讀一百本計算機著作吧,少年!

《代碼之美》 聶雪軍 (譯者)

《代碼之美》介紹了人類在一個奮斗領域中的創造性和靈活性:計算機系統的開發領域。在每章中的漂亮代碼都是來自獨特解決方案的發現,而這種發現是來源于作者超越既定邊界的遠見卓識,并且識別出被多數人忽視的需求以及找出令人嘆為觀止的問題解決方案。《代碼之美》33章,有38位作者,每位作者貢獻一章。每位作者都將自己心目中對于“美麗的代碼”的認識濃縮在一章當中,張力十足。38位大牛,每個人對代碼之美都有自己獨特的認識,現在一覽無余的放在一起,對于熱愛程序的每個人都不啻一場盛宴。 雖然《代碼之美》的涉獵范圍很廣,但也只能代表一小部分在這個軟件開發這個最令人興奮領域所發生的事情。

更多計算機寶庫...

燃烧吧足球登陆