/*
鏈式儲存定義:
為了表示每個資料元素與其直接後繼元素之間的邏輯關係,
每個元素除了儲存本身的資訊外,還需要儲存指示其直接後繼的資訊。
鏈式儲存邏輯結構
n個結點連線成乙個鏈式線性表的結構叫做鍊錶。當每個結點中包含乙個指標域時,叫做單鏈表。
鍊錶的基本概念
表頭結點:
鍊錶中的第乙個結點,包含指向第乙個資料元素的指標以及鍊錶自身的一些資訊。
資料結點:
鍊錶中代表資料元素的結點,包含 指向下乙個資料元素的指標和資料元素的資訊。
尾結點:
鍊錶中最後乙個資料結點,其下乙個元素指標為空,表示無後繼。
*//*
鏈式儲存結構:
在c語言中可以用結構體來定義鏈結中的指標域
鍊錶中的表頭結點也可以用結構體實現
typedef struct _tag_linklistnode linklistnode;
struct _tag_linklistnode
; 結點指標域定義
typedef struct _tag_linklist
tlinklist; 頭結點的定義。
struct value
; 資料元素定義示例
*//*
鏈式儲存結構
獲取第pos個元素操作
*判斷線性表是否合法
*判斷位置是否合法
*由表頭開始通過nxet指標移動pos次後,當前元素的next指標即指向要獲取的元素
linklistnode* current = (linklistnode*)list;
for(i=0;i
ret = current->next;
*/ /*
鏈式儲存結構:
插入元素操作: node->next = current->next;
current->next =node;
*判斷線性表是否合法
*判斷插入位置是否合法
*由表頭開始通過next指標移動pos次後,當前元素的next指標即指向要插入的位置
*將新元素插入
*線性表長度加1
linklistnode* current = (linklistnode*)list;
for(i=0;inext != null);i++)
node->next = current->next;
current->next = node;
slist->length++;
*//*
刪除元素操作:
current -> next = ret -> next;
刪除第pos個元素的演算法:
*判斷線性表是否合法
*判斷插入位置是否合法
*獲取第pos個元素
*將第pos個元素從鍊錶中刪除
*線性表長度減1
tlinklist* slist = (tlinklist*)list;
linklistnode* ret = null;
int i =0;
if((slist != null)&& (0<= pos)&&(poslength))
ret = current->next;
current->next = ret->next;
slist->length--;}
資料結構 佇列(鏈式儲存)
資料結構和演算法 摘要 前一篇部落格主要討論迴圈佇列,但是迴圈佇列都是事先申請好空間,使用期間是不能釋放的。但是鏈佇列,每次都可以進行申請和釋放結點。再無法預估佇列長度的時候,我們可以考慮用鏈佇列。1 設計佇列資料結構 結點結構 typedef struct queue node queue nod...
《資料結構 棧》鏈式儲存
一 鏈式儲存 和 順序結構 對比?棧的 順序結構 與 鏈結構,他們在時間複雜度上都一樣,都為o 1 如果棧的數量可預知,則使用順序棧,否則,則使用鏈棧 鏈棧 要求每個元素都有指標域,增加了記憶體開銷,但對於長度無限制。二 棧 鏈式結構 棧的 順序結構 與 鏈結構,他們在時間複雜度上都一樣,都為o 1...
資料結構之佇列(鏈式儲存)
一 佇列結點package linkedqueue packagname linkedqueue classname linkedqueuenode date 2017 1 25 author cullianns des 鏈式儲存結點結構 public class linkedqueuenode 二...