新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 《C與指針》讀書筆記十

        《C與指針》讀書筆記十

        作者: 時間:2016-08-24 來源:網絡 收藏

          與很多介紹語言教材不同之處,在《》的第十二章介紹了一些關于《數據結構》的內容----鏈表。并且介紹了鏈表的插入、刪除、初始化等操作。到這里應該明白了一門計算機語言的偉大之處不在于語言的本身。我當年在學校學習完Pascal覺得語言好像沒有什么太大用處。現在想來不是語言沒有用,而是我并沒有使用語言來解決實際中問題。所以名牌大學與普通大學不同之處,不是授予學生的基本知識不同,而是啟蒙方法不同。

        本文引用地址:http://www.104case.com/article/201608/295973.htm

          鏈表是由節點組成的,每個節點組成,節點必須包括兩大部分,一是節點的內容,另外是指向下一節點的。也就下一節點的地址。特殊兩個節點是鏈表頭(root)和鏈表尾。鏈表頭只是有一個,指向鏈表第一個節點,最后一個節點的指針指向NULL,標志該鏈表結束。

          與隊列相比鏈表有很大優勢。鏈表不需要一塊地址連續的空間。因為這陣可以連接起各個節點。使得每個節點在物理上地址上處于不連續的離散狀態。但是在邏輯上卻是處于連續的地址空間。這也是程序員在編程過程中偏向于使用指針的原因吧!在使用鏈表過程中可以深刻體會到指針、結構體、地址之間巧妙關系。如果能有體會,那么高效的使用指針已經不是問題了。編程不是單純語言問題。其實是思維、機器、問題三方面的結合體。處理好這三方面關系問題即可得到完美的解決。

          書中介紹了鏈表的創建、插入、刪除等。如果在隊列中某個位置插入一個節點,需要將該位置以后節點向后移動。這在數據量大時消耗的時間非常可觀的。但是鏈表只需要修改兩個節點的指針即可完成。在數據量比較大時顯得非常高效。刪除鏈表也是一樣的。隊列需要移動節點,鏈表只需修改上一節點的指針。如果后銷毀該節點即可。

          一般單鏈表的遍歷只能單向進行。每次遍歷只能從鏈表頭開始,到鏈表尾結束。為了提高遍歷自由度,作者介紹了雙向鏈表。可以從一個節點任意訪問其前趨和后趨節點。

          一個問題總會帶來矛盾,雙鏈表解決表里問題,但是同時在插入、刪除方面帶來了副作用。因為同事要維護兩個指針。解決實際問題《數據結構》是非常重要的課程。如果能將其中理論用于實踐那么將事半功倍!



        關鍵詞: C 指針

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 台湾省| 青神县| 依兰县| 昌邑市| 马鞍山市| 迁西县| 望城县| 中西区| 通州市| 新化县| 和平县| 天水市| 焉耆| 芜湖县| 荥阳市| 新化县| 宜章县| 明光市| 武陟县| 巴彦县| 肥乡县| 香格里拉县| 灵山县| 漳州市| 麟游县| 永靖县| 丹巴县| 孝昌县| 广灵县| 巴中市| 江阴市| 红原县| 通道| 抚顺市| 安乡县| 牟定县| 鄂伦春自治旗| 民乐县| 鄯善县| 伽师县| 西和县|