02-線性結構1 兩個有序連結串列序列的合併【連結串列】
題意:將倆個遞增連結串列合併成非遞減連結串列,注意提交程式碼時只需提交合並函式!
思路:就是最基本的連結串列操作。。。
程式碼:
#include <stdio.h> #include <stdlib.h> typedef int ElementType; typedef struct Node* PtrToNode; struct Node { ElementType Data; PtrToNode Next; }; typedef PtrToNode List; List Read(); /* 細節在此不表 */ void Print( List L ); /* 細節在此不表;空連結串列將輸出NULL */ List Merge( List L1, List L2 ); int main() { List L1, L2, L; L1 = Read(); L2 = Read(); L = Merge(L1, L2); Print(L); Print(L1); Print(L2); return 0; } List Read() { int n,i,fig; List Head,r,s; Head = (List)malloc(sizeof(List)); r = Head; //Head = r; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&fig); s = (List)malloc(sizeof(List)); s->Data = fig; r->Next = s; r = s; } r->Next = NULL; return Head; } void Print( List L ) { List t = NULL; t = (List)malloc(sizeof(List)); L = L->Next; if(L == NULL) {printf("NULL\n");return;} while(L != NULL){ printf("%d ",L->Data); L = L->Next; }printf("\n"); L = t; } List Merge( List L1, List L2 ) { List L,p,t,tL1,tL2; L = (List)malloc(sizeof(List)); p = L; tL1 = L1->Next;tL2 = L2->Next; while(tL1 != NULL || tL2 != NULL){ t = (List)malloc(sizeof(List)); if(tL2 == NULL || tL1 != NULL && tL1->Data <= tL2->Data){ t->Data = tL1->Data; p ->Next = t; p = t; tL1 = tL1->Next; } else{ t->Data = tL2->Data; p->Next = t; p = t; tL2 = tL2->Next; } } p->Next = NULL; L1->Next = NULL;//將連結串列頭結點斷開 L2->Next = NULL; return L; }
相關推薦
02-線性結構1 兩個有序鏈表序列的合並
輸入 stdlib.h 細節 結點 類型 兩個 node 指針 color 02-線性結構1 兩個有序鏈表序列的合並(15 分) 本題要求實現一個函數,將兩個鏈表表示的遞增整數序列合並為一個非遞減的整數序列。 函數接口定義: List Merge( List L1,
[資料結構]02-線性結構1 兩個有序連結串列序列的合併
本題要求實現一個函式,將兩個連結串列表示的遞增整數序列合併為一個非遞減的整數序列。 函式介面定義: List Merge( List L1, List L2 ); 其中List結構定義如下: typedef struct Node *PtrToNode; struct Nod
MOOC陳越資料結構第二週02-線性結構1 兩個有序連結串列序列的合併 (15 分)
首先讀題,題目中說L1,L2都為含頭節點的,第一次做的時候沒有認真讀題以為不帶頭節點,傳出的連結串列也要求帶頭節點。 程式碼 List Merge(List L1,List L2){ List pa,pb,pc,L; L = (List)malloc(si
PTA 02-線性結構1 兩個有序連結串列序列的合併 (15 分)
本題要求實現一個函式,將兩個連結串列表示的遞增整數序列合併為一個非遞減的整數序列。 函式介面定義: List Merge( List L1, List L2 ); 其中List結構定義如下: typedef struct Node *PtrToNode; struc
mooc浙大資料結構02-線性結構1 兩個有序連結串列序列的合併
題目:02-線性結構1 兩個有序連結串列序列的合併(15 分)本題要求實現一個函式,將兩個連結串列表示的遞增整數序列合併為一個非遞減的整數序列。函式介面定義:List Merge( List L1, List L2 ); 其中List結構定義如下:typedef struct
02-線性結構1 兩個有序連結串列序列的合併【連結串列】
題意:將倆個遞增連結串列合併成非遞減連結串列,注意提交程式碼時只需提交合並函式! 思路:就是最基本的連結串列操作。。。 程式碼: #include <stdio.h> #include
02-線性結構1 兩個有序連結串列序列的合併 (15分)
本題要求實現一個函式,將兩個連結串列表示的遞增整數序列合併為一個遞增的整數序列。 函式介面定義: List Merge( List L1, List L2 ); 其中List結構定義如下: typedef struct Node *PtrToNode; struct Nod
PTA-線性結構1 兩個有序連結串列序列的合併
本題要求實現一個函式,將兩個連結串列表示的遞增整數序列合併為一個非遞減的整數序列。 函式介面定義: List Merge( List L1, List L2 ); 其中List結構定義如下: typedef struct Node *PtrToNode;
資料結構-線性表- 01 “兩個有序連結串列序列的合併” 問題
題目要求: 本題要求實現一個函式,將兩個連結串列表示的遞增整數序列合併為一個非遞減的整數序列。 函式介面定義: List Merge( List L1, List L2 ); 其中List結構定義如下: typedef struct Node *PtrToNode; struc
6-1 兩個有序連結串列序列的合併 (15 分)
本題要求實現一個函式,將兩個連結串列表示的遞增整數序列合併為一個非遞減的整數序列。 函式介面定義: List Merge( List L1, List L2 ); 其中List結構定義如下: typedef struct Node PtrToNode; struct Node
c語言資料結構中兩個有序連結串列合併為一個新連結串列
先建立兩個連結串列La和Lb,並向La Lb中輸入值,然後再建立一個Lc,Lc指向La,具體程式碼如下: #include "stdafx.h" #include"stdio.h" #include"stdlib.h" #define OK 1 #define OVERFL
資料結構——將兩個有序連結串列併為一個有序連結串列演算法
//將兩個有序連結串列併為一個有序連結串列演算法,該程式也可以cFree環境執行。// c1.h (程式名) #include<string.h> #include<ctype.h> #include<malloc.h> // mallo
習題2.5 兩個有序鏈表序列的合並(15 分)浙大版《數據結構(第2版)》題目集
merge 其中 接口 cnblogs oid color 給定 style bsp 本題要求實現一個函數,將兩個鏈表表示的遞增整數序列合並為一個非遞減的整數序列。 函數接口定義: List Merge( List L1, List L2 ); 其中Lis
7-1 兩個有序序列的中位數 (25 分)
已知有兩個等長的非降序序列S1, S2, 設計函式求S1與S2並集的中位數。有序序列A0,A1,⋯,AN−1的中位數指A(N−1)/2的值,即第⌊(N+1)/2⌋個數(A0為第1個數)。 輸入格式: 輸入分三行。第一行給出序列的公共長度N(0<N≤10
【死磕演算法之1刷Leetcode】——找出兩個有序陣列的中位數【Median of Two Sorted Arrays】O(log(m+n))
Median of Two Sorted Arrays 題目難度:hard 題目要求: There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of the two s
資料結構 將兩個有序順序表合成一個有序順序表
題目: 有順序表A和B,其元素均按從小到大的升序排列,編寫一個演算法,將它們合併成一個順序表C,要求C的元素也按從小到大的升序排列 程式碼: #include<stdio.h> #define MAX 100 typedef int datatyp
7-1 兩個有序序列的中位數(25 分)
已知有兩個等長的非降序序列S1, S2, 設計函式求S1與S2並集的中位數。有序序列A0 ,A1,⋯,AN−1的中位數指A(N−1)/2的值,即第⌊(N+1)/2⌋個數(A0為第1個數)。 輸入格式: 輸入分三行。第一行給出序列的公共長度N(0
資料結構_兩個有序單鏈表歸併C語言原始碼
#include<stdio.h> #include<stdlib.h> typedef struct LNode { int data; struct LNode *next;; }LNode; void InitList(LNode *&L) {
7-15 兩個有序鏈表序列的合並(20 分)
一行 htm text all color div 兩個 turn nbsp 已知兩個非降序鏈表序列S1與S2,設計函數構造出S1與S2的並集新非降序鏈表S3。 輸入格式: 輸入分兩行,分別在每行給出由若幹個正整數構成的非降序序列,用−1表示序列的結
兩個有序鏈表序列的合並
ret nbsp str 是否 並集 link 表示 平時 math 7-51 兩個有序鏈表序列的合並(20 分) 已知兩個非降序鏈表序列S1與S2,設計函數構造出S1與S2的並集新非降序鏈表S3。 輸入格式: 輸入分兩行,分別在每行給出由若幹個正整數構成的非降序序列