一.單向鍊錶的建立,節點的插入和刪除
1.鍊錶建立:(注意鍊錶的第乙個節點是空的)
#include
#include
#include
typedef
struct lnodelnode,
*linklist;
linklist createlist
(int n)
;void
print
(linklist h)
;int
main()
linklist createlist
(int n)
return l;
}void
print
(linklist h)
}
2 刪除某個節點
設計函式,利用迴圈找到鍊錶節點,直接用free()函式清除
3 插入節點
同樣設計函式,找到要插入的位置
核心**:
s=
(linklist)
malloc
(sizeof
(lnode));
s->next=p->next;
p->next=s;
s->data="想要插入的元素」;
return ok;
二、雙向鍊錶
其實雙向鍊錶與單向的區別僅僅是每個節點多了乙個指向前乙個節點的指標,下面介紹其簡單操作
1 雙向鍊錶的建立:
#include
#include
#include
typedef
struct doublelinknode
node;
/* 建立乙個帶頭節點的雙向鍊錶 */
node*
create_double_link()
pnext->next=
null
;break;}
return head;
}/* 輸出每乙個節點的資料 */
void
print
(node*head)
printf
("輸出第%d個節點的資料:%p\n"
,j+1
,temp->next)
;}
2 插入節點
int
insertnode
(node* head)
if(pnext==
null
)else
return0;
}
3 刪除節點
free();
三、迴圈鍊錶
1 建立
linklist creat_list
(linklist head)
end->next = head;
// 將尾結點的指標指向頭結點
return head;
}
而要對迴圈鍊錶進行計數等操作不能再像前面那樣判斷指標是否指向null,
我們可以把head賦乙個值,當得到這個值即代表迴圈了一次。
最後說一點,雙向迴圈鍊錶即是把head的prior指標指向最後乙個節點即可 資料結構 Python實現 之鍊錶
理解資料結構最好的方式就是用腦洞把它想象出來。一 節點 class node def init self,data none self.data data self.left none self.right none node node 5 現在請你閉眼在腦海創造一片虛無縹緲的空間,空間裡產生乙個盒...
資料結構之鍊錶(python實現)
coding utf 8 create on 2020 8 20 20 17 filename lianbiao.py 以單鏈表為例 建立鍊錶 定義節點 class node def init self,data none next none self.data data self.next nex...
Java資料結構之鍊錶的實現
在鍊錶資料結構中,我們需要使用到遞迴演算法。遞迴演算法是一種直接或間接地呼叫自身演算法的過程。在計算機編寫程式中,遞迴演算法對解決一大類問題是十分有效的,它往往使演算法的描述間接而且容易理解。但是遞迴必須要有出口,否則會遞迴過多造成記憶體溢位 首先構造乙個節點類 節點類 author zll cla...