單鏈表中結點型別定義如下:
typedef
struct link node,
*linklist;
設a和b是兩個單鏈表(帶頭節點),其中元素遞增有序,設計乙個演算法從a和b中公共元素產生單鏈表c,要求不破壞a b的結點
void
fun3
(linklist& a, linklist& b)
else
if(p->data > q->data)
else
else}}
display
(c);
}
2.已知兩個鍊錶a和b分別表示兩個集合,其中元素遞增排列。繪製函式,求a和b的交集,並存放於a鍊錶中。
void
fun4
(linklist& a, linklist& b)
else
if(p->data > q->data)
else
}}
3.頭指標分別為la,lb的帶頭節點的單鏈表中,結點按元素遞增有序排列,將la,和lb兩個單鏈表合併成按元素遞增有序的單鏈表,要求不另外開闢空間,la作為合併後的單鏈表的頭節點
linklist uni_te
(linklist la, linklist lb)
else}if
(p ==
null)}
else
}return la;
}
4.兩個整數序列a=a1,a2,a3,…,am和b=b1,b2,b3,…bn已經存入兩個單鏈表中,設計乙個演算法,判斷序列b是否是序列a的連續子串行
int
pattern
(linklist a, linklist b)
else}if
(q ==
null
)else
cout <<
0<< endl;
return0;
/*node* p = a->next;
node* q = b->next;
while (p)
else
if (qq == null)
p = p->next;
} }
cout << 0 << endl;
return 0;*/
}
5.設計乙個演算法用於判斷帶頭節點的迴圈雙鏈表是否對稱
int
flag
(linklist l)
else
}return flag;
6.有兩個迴圈單鏈表(不帶頭節點),煉表頭指標分別為h1和h2,編寫乙個函式將鍊錶h2鏈結到h1之後,要求鏈結後的鍊錶仍保持迴圈鍊錶形式
void
fun5
(linklist& h1, linklist& h2)
while
(q->next != h2)
p->next = h2;
q->next = h1;
}
7.設有乙個帶頭節點的單鏈表,其結點值都是正整數。設計乙個演算法,反覆找出單鏈表中結點值最小的結點,並輸出,然後將該結點從中刪除,直到單鏈表為空位置,再刪除表頭結點
void
de_all
(linklist& l)
p->next = l;
while
(l->next != l)
pre = p;
p = p->next;
} temp = min_p;
cout << temp->data <<
" ";
min_pre->next = min_p->next;
//free(temp);
}//free(l);
}
8.已知帶頭節點單鏈表,頭指標list,不改變鍊錶的前提下設計高效的演算法,查詢鍊錶中倒數第k個位置上的結點的值
int
fun6
(linklist list,
int k)
else}if
(p ==
null
&& k >0)
cout << q->data << endl;
return1;
/*node* p = list;
node* q = list;
while (k > 0&&q->next!=null)
if (q->next == null && k != 0)
while (q)
cout << p->data;
return 0;*/
}
單鏈表的經典問題
單鏈表中的節點型別描述如下 typedef struct link node,linklist 使用尾插法 頭插法 建立乙個帶頭節點 不帶頭節點 的單鏈表 void creat list head linklist l 頭插法 int x l node malloc sizeof node 先建立乙...
單鏈表經典問題3
單鏈表中節點型別定義如下 typedef struct link node,linklist 1.試編寫在帶頭節點的單鏈表l中刪除乙個最小值節點的高效演算法 假設最小值節點時唯一的 void delete minx linklist l pre pre next p p next min pre n...
單鏈表經典題型
單鏈表中經常考的題型中的四種題型 1.單鏈表逆置並列印,逆置又分為兩種 1 就地逆置 2 頭插法逆置 1 就地逆置顧名思義就是在不改變單鏈表儲存的基礎上進行逆置,下面的就是就地逆置的思想,具體見 struct node m q next 儲存即將斷開的結點 while q null q m m q ...