單鏈表合併

2021-04-12 20:34:21 字數 1112 閱讀 9570

某公司的面試題。

兩個公升序單鏈表a,b,給定乙個節點c。不能申請其他節點情況下將a,b 按公升序排列。/

#include

#include

#include

////

//struct link;//

//建立鍊錶

// nrandom: 自由因子

// ncount: 鍊錶節點數目

link* create( const int nrandom, const int ncount )

r->next=null;

r = p->next;

while ( r->next != null)

return  p->next;  }//

void  combin( link* a,link* b, link** h )

(*h)->next=a;

for(; a->data <= a->next->data; a = a->next)//a=a->next

}////處理後b鏈為空

//if ( b == null )

else

(*h)->next = a->next;

a->next = b;

//斷鏈操作

while ( a->data <= a->next->data )

(*h)  = a->next;

a->next = null;}}

////b頭小的情況,將b轉成迴圈鍊錶。a不轉。

//else

(*h)->next=b;

for(; b->data <= b->next->data; b = b->next)//a=a->next

}//////處理後a鏈為空

if ( a == null )

else

(*h)->next = b->next;

b->next = a;

//斷鏈操作

while ( b->data <= b->next->data )

(*h)  = b->next;

b->next = null;}}

}void main()

單鏈表(合併單鏈表)

單鏈表遍歷 單鏈表遍歷是從單鏈表頭指標head開始訪問,沿著next指標所指示的方向依次訪問每乙個結點,且每個結點只能訪問依次,直到最後乙個結點為止。遍歷時注意,不要改變head指標的指向。因此一般設定另外的乙個指標變數如p,p從head開始依次訪問乙個結點,直到鍊錶結束,此時p null,完成依次...

合併單鏈表

線性表介面 public inte ce ilinarlist 單鏈表實現線性表 public class slinklistimplements ilinarlist 初始化線性表 public slinklist 新增元素,將元素新增在單鏈表的末尾 public boolean add e it...

合併單鏈表

合併單鏈表 20分 本題要求實現乙個函式,將兩個公升序鍊錶合併為乙個新的公升序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。在這裡描述函式介面。例如 linklist mergetwolists linklist l1,linklist l2 其中l1和l2都是使用者傳入的引數,為煉表...