最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

C/C++編程筆記:如何使用C++實現(xiàn)單鏈表?單鏈表基本運算實現(xiàn)

2020-08-11 15:15 作者:C語言編程__Plus  | 我要投稿

接上節(jié):C/C++編程筆記:如何使用C++實現(xiàn)單鏈表?單鏈表第一部分。


單鏈表上的基本運算實現(xiàn)

(四) 求表長

由于我們的代碼中已經(jīng)定義過一個叫做 curLength 的變量用來記錄我們的表長

所以我們可以直接返回,我們在定義中已經(jīng)實現(xiàn)了,也就是這句:

????????int size()const {return curLength;}//返回單鏈表的當前實際長度

但是如果我們沒有這樣一個變量,我們想要實現(xiàn)這樣的功能又是什么樣的方法呢?


(五) 遍歷單鏈表

我們需要從頭到尾訪問單鏈表中的每一個節(jié)點,并且輸出其中數(shù)據(jù)域的信息。


(六) 按照位序 i 尋找其元素對應內(nèi)存地址

設置一個移動工作指針,和一個計數(shù)器 count,初始時p指向頭結(jié)點,每當指針p移向下一個結(jié)點的時候,計數(shù)器count + 1 ,直到 p指向位序為 i的節(jié)點為止。返回 p。


(七) 按值查詢節(jié)點位序

設置一個移動工作指針,和一個計數(shù)器 count,從單鏈表的第一個節(jié)點開始,開始于給定的值進行比對,如果相等則查找成功,返回節(jié)點的位序,否則繼續(xù)查詢知道單鏈表結(jié)束,查詢失敗返回 -1。


(八) 插入節(jié)點

在位序為 i 出插入值為value 的新節(jié)點q,我們需要做的就是找到位序為i - 1 的節(jié)點p,讓q指針域指向原來p的后繼,然后修改p的后繼為q即可,說白了也就是修改插入元素位置前后的元素指向關系就可以了。


(九) 刪除節(jié)點

能看懂添加節(jié)點的方法,理解刪除節(jié)點也是手到擒來。


單鏈表整表的創(chuàng)建

回顧我們前面認識的順序表,它其實可以理解為一個數(shù)組,我們聲明一個類型,同時給定值,初始化其大小,但是單鏈表就不一樣了,它是一種動態(tài)組織,它不需要像順序表一樣元素集中,它可以隨著實際的情況來動態(tài)生成節(jié)點,所以也不需要預先分配空間大小和位置。

(一) 頭插法創(chuàng)建單鏈表

頭插法的意思就是說,每次新增節(jié)點全部插在頭結(jié)點之后,首元結(jié)點之前,你可以這樣理解,我先來排隊,但是后面來了人,他就會排到我的前面去,我們來借助圖看一下:


我們一次插入元素 123 但實際上輸出的是按照321的順序存儲的,也就是說和我們的邏輯順序是相反的。

我們來看一看怎么實現(xiàn)它:


逆置單鏈表

我們知道單鏈表中元素順序與讀入的順序是相反的,我們可以通過逆置單鏈表的算法,幫助我們重新恢復我們的慣有思維順序。


(二) 尾插法創(chuàng)建單鏈表

看完了頭插法,但是感覺這樣的順序與我們一貫的思維總是有一點別扭,而尾插法則是一種,邏輯順序與我們一致的創(chuàng)建方法。

還是看一下圖:


合并單鏈表

要求:假設我們給出兩個仍然是遞增的單鏈表la和lb,我們將其合并為lc 仍保證遞增,利用原表空間,但是我們?nèi)栽谙旅鎸⒈鞢稱作新表。

因為我們的要求是遞增的,所以使用尾插法是非常合適的,我們設計三個工作指針,分別指向兩個表的首元結(jié)點,然后將第三個指針指向新表的頭結(jié)點,比較前兩個指針指向的值,小的就放到新表的表尾,然后后移動兩表中較小的那一個的指針,以此類推,直到其中一個表尾空,將剩余的節(jié)點全部鏈接到新表的末尾。


總結(jié)

單鏈表,采取了鏈式存儲結(jié)構(gòu),用一組任意的存儲單元存放線性表的元素,尤其對于需要頻繁的插入和刪除數(shù)據(jù)的時候更加適用,如果需要進行頻繁的查找還是推薦使用順序表,例如對于一個學生成績管理系統(tǒng)的制作,學生更多的時候是查看自己的成績,而錄入的老師,也只有在考試后錄入一次,所以應該使用順序表,而例如考勤打卡系統(tǒng),更多的是打卡信息的記錄,所以還是選擇使用鏈表,當然例子可能不是很恰當,同時正常的開發(fā)中還會有更多復雜的問題需要考慮,舉例子只為了利于理解。

學習C/C++編程知識,提升C/C++編程能力,歡迎關注UP一起來成長!

另外,UP在主頁上傳了一些學習C/C++編程的視頻教程,有興趣或者正在學習的小伙伴一定要去看一看哦!會對你有幫助的~

C/C++編程筆記:如何使用C++實現(xiàn)單鏈表?單鏈表基本運算實現(xiàn)的評論 (共 條)

分享到微博請遵守國家法律
泰顺县| 砀山县| 绿春县| 西宁市| 固安县| 大田县| 九寨沟县| 定日县| 新巴尔虎右旗| 邳州市| 赤城县| 临湘市| 彭泽县| 甘肃省| 瓦房店市| 威信县| 阳信县| 柳林县| 南岸区| 奉化市| 天峨县| 谢通门县| 宁远县| 自治县| 农安县| 年辖:市辖区| 印江| 白山市| 锦州市| 泸溪县| 习水县| 增城市| 扶绥县| 凭祥市| 垦利县| 灵武市| 得荣县| 汤原县| 高雄县| 肇东市| 和政县|