您好,登錄后才能下訂單哦!
線性表從物理結構上分,有順序存儲結構和鏈式存儲結構兩種。既然有了順序存儲結構,又何必再有一個鏈式存儲結構呢?原因就在于,順序存儲結構在存儲大量的元素,對這些元素進行插入或這刪除操作時,會浪費大量的時間。因為,采用順序存儲結構,這些元素的地址都是相鄰的,如果刪除或者插入一個元素,則需對其后的所有元素進行移動,故非常的浪費運行時間,運行效率不高。
鏈式存儲結構卻避免了這樣的問題。因為,鏈式存儲并不需要去關心元素存在哪個位置,也就是說,鏈式存儲可以讓元素存于內存的任意位置,而我只要知道元素的地址即可。如下圖所示:
這種存儲方式就完全不需要各個元素是相鄰的位置,只需要知道每一個元素的地址即可。通過上圖可以發現,采用了鏈式存儲結構的元素之間互相串聯,就像是一個表,所以,將這種形式稱為鏈表。那么,可以將每一個數據所占的單元叫做,結點。因為,我們不僅需要知道存儲的元素值,還需要知道元素的地址,因此,一個結點就是由一個數據和存放數據的地址,兩部分組成。
那么,總結一下就是,鏈表是由一個個結點構成,而每一個結點是由一個存放數據的數據域和一個存放數據地址的地址域構成。
這個地址域存放的并不是當前元素的地址,而是,下一個元素的地址。
代碼如下:
typedef struct Node{ ElemType data; struct Node *next; }Node; typedef struct Node *LinkList;
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。