1.什麼是資料結構?
資料結構,就是我們計算機內部的運算,程式語言的基礎工作模式吧,個人總結的 = = !!
資料:說簡單一點,就是計算機二進位制機器碼,然後通過一些複雜的操作,變為複雜的語言。
資料元素:資料有集合和元素的區別,集合裡的個體就是資料元素,相對應的就是資料結構。
線性表:
說簡單一點,就是線性儲存結構,每個表中有大量的元素,這些元素在物理位置中都是連線起來的。
這些元素有直接前驅和直接後繼。線性表的位置是相鄰的。
比如,位置1,位置2,位置3.。。。。。位置n。
還有一點,線性表的資料不管有多麼大,都是固定的,也就是說有乙個終點。
線性表的缺點:插入刪除的時候,需要移動大量的元素。
比如插入刪除元素後,會移動插入或者刪除後面的所有元素,從而造成時間複雜度的線性增加。
鏈式儲存結構:
每乙個節點有乙個指標域和資料域,其中指標域指向的是這個元素的下乙個後繼,這樣的往復迴圈
就可以形成乙個鍊錶,當然,這和鏈式儲存結構也有不同的地方,最大的不同就是他們的「位址」是不同的。
打個最簡單的比方,乙個遊戲,如果我想要去乙個很遠的地圖。有2種方式:第一種,直接走路去,
那麼我就會經過這個地圖的所有區域,直到到達這個地圖,還有一種方式就是用cash,**裡的,
然後直接點那個地圖,可以瞬間移動到我需要的地方。
2種方式的優缺點很顯而易見了,如果是採用鏈式結構的話,不論隔了多麼遠,我也只要輕輕滑鼠一點,
就可以到了,刪除插入元素也是如此,如果插入或者刪除元素的話,採用線性表的話,會移動和這個元素相關的元素的位置。如果是鏈式儲存結構的話,我只要把這個元素插入或者刪除,然後把以前元素的next指向新插入的元素的next,然後把這個新插入的元素賦給這個元素前的那個元素的指標就ok了。
鍊錶有乙個指標域,指標指向的鍊錶中的下乙個元素。那麼我們該怎麼插入元素呢,在鍊錶中。
首先我們要想到,插入的元素是不是鍊錶的頭部,或者是在鍊錶的尾部。或者在鍊錶的中間,
或者在a元素的前面或者後面。現在討論一下中間部分插入元素的方法。
首先讓s->next=p->next 這句話的意思就是,把鍊錶p的指向下乙個元素的指標賦給s的指向下乙個元素的指標。
這樣 s->next就變成了p->next,由於是在鍊錶中間插入的,所以自然s->next就指向了鍊錶中的下乙個元素。
p->next=s,這句話的意思:就是把s這個指標的值,讓p->next指向s,從而前後2方面都融入了鍊錶,從而使得成為了鍊錶的一部分,這就是插入法。
C語言資料結構1 資料結構和演算法
如果沒有接觸過資料結構這門課程,或者說只是單單聽過這個名詞。那麼在含義方面,資料結構對於我們來說是非常陌生的。在了解一門課程之前,我們總是要知道這門課程要學習什麼。在了解資料結構之前,我們需要知道什麼是資料。對於人類來說,一切可以讓我們獲取資訊的東西都是資料。我們可以通過乙個動物的叫聲判斷是什麼動物...
C語言資料結構 1 序言
c語言是一門經典的語言,有著悠久的歷史,而且還長期霸佔各類程式語言排行榜的前幾位,可謂經久不衰。c語言也是本人學習的第一門正兒八經的程式語言,剛開始學的時候可謂如痴如醉,哈哈,好像從此之後也再也沒有這麼認真的學習過程式語言語法。總之c語言,很重要。我記得剛開始學資料結構的時候,不管是網上,還是教科書...
淺讀《大話資料結構》(1)
第一章,資料結構緒論 基本概念 資料,是描述客觀事物的符號,是計算機中可以操作的物件,是能被計算機識別並輸入計算機處理的符號集合。資料元素,是組成資料的有一定意義的基本單位,在計算機中通常作為整體處理。也被稱為記錄。資料項,乙個資料元素有若干個資料項組成。資料項是資料不可分割的最小單位。資料物件,是...