<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

          《C與指針》讀書筆記十

          作者: 時間:2016-08-24 來源:網(wǎng)絡 收藏

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

          本文引用地址:http://www.ex-cimer.com/article/201608/295973.htm

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

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

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

            一般單鏈表的遍歷只能單向進行。每次遍歷只能從鏈表頭開始,到鏈表尾結束。為了提高遍歷自由度,作者介紹了雙向鏈表??梢詮囊粋€節(jié)點任意訪問其前趨和后趨節(jié)點。

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



          關鍵詞: C 指針

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();