typedef struct _node node;
void add(node *head,int i)
last->next=p;
}
這裡我們可以建立乙個新的結構體,內容為頭指標(始終指向鍊錶的第乙個元素),尾指標(始終指向鍊錶的最後乙個元素)。
void insert_list(node *head,int i,int value)
p->next=pnode->next;
pnode->next=p;
}
void delete_list(node *head,int i)
pre->next=p->next;
free(p);
}
這裡我們使用乙個前驅指標,記錄當前節點的前乙個,以防斷鏈。
void delete_samevalue(node *head,int x)else
}}
從頭掃瞄單鏈表,pre為p的前驅。如果p的節點值為x,則刪除,且p移向下乙個節點,否則p和pre都向後移乙個節點。(q可以記錄當前p的節點,方便了後續p的移動。)
void print_list(node head)
以上演算法都是引入了頭節點的,我們需要在main函式中先創立乙個空節點。引入頭節點可以給我們帶來兩個好處:
1.鍊錶第乙個位置上的操作與其他操作一致。
2.空表與非空表的處理統一。
c語言 資料結構 單鏈表
將線性表l a0,a1,an 1 中各元素分布在儲存器的不同儲存塊,稱為結點,通過位址或指標建立它們之間的聯絡,所得到的儲存結構為鍊錶結構,表中 ai的結點形式如圖表示 其中結點的data 域存放資料元素 ai,而 next 域是乙個指標,指向 ai的直接後繼 ai 1 所在的結點。單鏈表結構如下 ...
資料結構 單鏈表 C語言
單向鍊錶 鍊錶結點通常包含資料域與指標域,資料域用來儲存相關的使用者的資料,指標域用來指向下乙個結點。訪問單向鍊錶,需要從頭部 head 開始單向順序訪問,訪問終結於指標域 next 為null的結點 其儲存方式不同於以往的陣列,按照非連續位址方式儲存。優點 鍊錶長度可以實現動態增長,不必像陣列一樣...
C語言資料結構 單鏈表
單鏈表在資料結構裡十分常見,是一種常見的線性表,下面介紹其性質並用 實現相關功能 單鏈表以鏈結方式儲存資料 1 鍊錶的具體儲存表示為 用一組任意的儲存單元來存放線性表的結點 這組儲存單元既可以是連續的,也可以是不連續的 鍊錶中結點的邏輯次序和物理次序不一定相同。為了能正確表示結點間的邏輯關係,在儲存...