當兩個 遞增鍊錶時 可以採用 歸併排序 或者 二叉樹建立時候的遞迴。
#include #include using namespace std;
typedef struct node
node;
node* createlist(int a, int n)
p->next = null;
return head;
}//整體思路跟 排序演算法中的 歸併排序類似
node* meragelist(node* head_1, node* head_2)
else if(head_2 == null)
else
else
// 找到合併後頭節點
while(top1 && top2)
else
}if(top1)
else if(top2)
}return head_3;
}//我們可以採用二叉樹插入時的 遞迴法
node* meragebydg(node* head_1, node* head_2)
else if(null == head_2)
node* head_3;
if(head_1->data < head_2->data)
else
return head_3;
}int main()
; int c=;
node* list1 = createlist(a,4);
node* list3 = createlist(c,5);
list1=meragebydg(list1, list3);
for(node* temp =list1;temp; temp = temp->next)
cout<
普通資料時可用如下方法 用氣泡排序法
#include #include using namespace std;
typedef struct node
node;
node* createlist(int a, int n)
p->next = null;
return head;
}void bubblesort(node* list)}}
}node* merge (node* list1, node* list2)
else if( (front != null) && (front->data < temp2->data) && (temp1->data >= temp2->data) )
else if ( ( (temp2->data)>(temp1->data) ) && (null==temp1->next) )
}temp1 = list1;
front = null;
}return list1;
}int main()
; int b=;
int c=;
node* list1 = createlist(a,4);
node* list2 = createlist(b,4);
node* list3 = createlist(c,5);
list1=merge(list1, list2);
list1=merge(list1,list3);
for(node* temp =list1;temp; temp = temp->next)
coutcout
}
如何將公共的外部檔案(css,js)整合到一起引入
在實際過程中,嚐嚐會遇到一大堆外部的js和css檔案,有經驗的人會將其分類,分門別類的引入各頁面中,但是相對於初學者或者沒有良好的 規範的人會時常將其弄的亂七八糟,比如這樣 看,是不是很亂,乾脆不知道哪個是哪個,有一種不管誰是誰,直接放上去,起作用就行的感覺 事實也是如此 那麼在不知道具體情況的時候...
雜湊表(下) 為什麼雜湊表和煉表經常會一起使用?
quad 雜湊表這種資料結構雖然支援非常高效的資料插入 刪除 查詢操作,但是雜湊表中的資料都是通過雜湊函式打亂之後無規律儲存的。也就說,它無法支援按照某種順序快速地遍歷資料。如果希望按照順序遍歷雜湊表中的資料,那我們需要將雜湊表中的資料拷貝到陣列中,然後排序,再遍歷。quad 因為雜湊表是動態資料結...
乙個雙向鍊錶排序問題
題目 建立乙個長度為n的帶頭結點的雙向鍊錶,使得該鍊錶中的資料元素遞增有序排列。必須使用雙向鍊錶完成,資料型別為整型。思路 根據題目建立好該雙向鍊錶 尾插法 然後用個指標依次查詢,先從第乙個節點往後走,找出最大節點max,再將max和最後乙個元素交換,第一遍結束 即奇數遍正向查詢 第二遍,從最後乙個...