單鏈表中的節點型別描述如下:
typedef
struct link node,
*linklist;
使用尾插法(頭插法)建立乙個帶頭節點(不帶頭節點)的單鏈表
void
creat_list_head
(linklist& l)
*///頭插法
int x;
l =(node*
)malloc
(sizeof
(node*))
;//先建立乙個頭節點
l->next =
null
;while
(cin >> x && x >0)
}
使用尾插法(頭插法)建立乙個不帶頭節點的單鏈表
void
creat_list_withouthead
(linklist& l)
*///尾插法
int x;
node* r =l;
//指標r指向單鏈表的尾節點
l =null
;while
(cin >> x && x >0)
else
}}
3.在該單鏈表(帶頭節點)的第x個元素前插入乙個整數y (從0開始)
void
add_before_x
(linklist& l,
int x,
int y)
while
(p !=
null
&& t < x -1)
if(x ==0)
if(p !=
null
)else
}
4.刪除單鏈表(帶頭節點)中的第i個元素(從0開始)
void
delet_x
(linklist& l,
int i)
node* p = l->next;
int t =0;
while
(p !=
null
&& t < i -1)
if(i ==0)
p = l;}if
(p ==
null
||p->next==
null
) node* q = p->next;
p->next = q->next;
//free(q);
}
5.單鏈表(帶頭節點)的逆置
void
reverse
(linklist& l)
}
單鏈表經典問題3
單鏈表中節點型別定義如下 typedef struct link node,linklist 1.試編寫在帶頭節點的單鏈表l中刪除乙個最小值節點的高效演算法 假設最小值節點時唯一的 void delete minx linklist l pre pre next p p next min pre n...
單鏈表的經典問題4
單鏈表中結點型別定義如下 typedef struct link node,linklist 設a和b是兩個單鏈表 帶頭節點 其中元素遞增有序,設計乙個演算法從a和b中公共元素產生單鏈表c,要求不破壞a b的結點 void fun3 linklist a,linklist b else if p d...
單鏈表經典題型
單鏈表中經常考的題型中的四種題型 1.單鏈表逆置並列印,逆置又分為兩種 1 就地逆置 2 頭插法逆置 1 就地逆置顧名思義就是在不改變單鏈表儲存的基礎上進行逆置,下面的就是就地逆置的思想,具體見 struct node m q next 儲存即將斷開的結點 while q null q m m q ...