關於線性表(順序表 鍊錶)的合併問題

2021-10-18 13:22:13 字數 3275 閱讀 2573

**如下:

#include

#include

using namespace std;

#define num 10

#pragma warning(disable:4996)

typedef

struct student

stu;

typedef

struct student

stu;

typedef

struct liist//定義乙個這樣的訪問線性表的結構體指標和測量長度的變數

list;

typedef

struct llist//定義乙個這樣的訪問線性表的結構體指標和測量長度的變數

list;

void

connectlist

(list &la, list &lb)

;//順序表合併

void

printflist

(list &l)

;//數學公式列印

list addlist

(list &la, list &lb)

;//順序表有序合併,借助乙個空表lc

intmain()

math2[0]

.name =

1; math2[0]

.num =-5

; math2[1]

.name =

3; math2[1]

.num =7;

math2[2]

.name =

5; math2[2]

.num =-8

;for

(int i =

0; i <

3; i++

)printflist

(l1)

; cout << endl<<

'+'<

printflist

(l2)

; cout << endl<<

'=';

list l3=

addlist

(l1, l2)

;printflist

(l3)

; cout << endl;

/*順序表合併

stu student1[5];

stu student2[5];

list l4, l5;

open(l4); open(l5);

strcpy(student1[0].name, "張三"); student1[0].num = 1;

strcpy(student1[1].name, "張四"); student1[1].num = 8;

strcpy(student1[2].name, "張五"); student1[2].num = 7;

for (int i = 0; i < 3; i++)

strcpy(student2[0].name, "張六"); student2[0].num = 2;

strcpy(student2[1].name, "張七"); student2[1].num = 5;

for (int i = 0; i < 2; i++)

connectlist(l4, l5);

showlist(l4);*/if(

!l1.p)if(

!l2.p)if(

!l3.p)

return0;

}void

connectlist

(list &la, list &lb)

//順序表合併

}list addlist

(list &la, list &lb)

//順序表有序合併,借助乙個空表lc

else

if(j == lb.length)

if(la.p[i]

.name > lb.p[j]

.name) lc.p[count++

]= lb.p[j++];

else

if(la.p[i]

.name < lb.p[j]

.name) lc.p[count++

]= la.p[i++];

else

else}}

if(matha ==0)

else

if(matha ==1)

lc.length = count;

return lc;

}void

printflist

(list &l)

//數學公式列印

這是上述**對應的執行結果

**如下

#include

#include

#include

using namespace std;

#define num 100

#pragma warning(disable:4996)

typedef

struct student

stu;

typedef

struct list

list;

void

connectlist

(list *la, list *lb, list *

&lc)

;//有序鍊錶的合併

intmain()

for(

int i =

0; i <

2; i++

)printflist

(l1)

;printflist

(l2)

;connectlist

(l1, l2, l3)

;printflist

(l3)

;//對兩個有序的鍊錶進行合併後使其依然有序,並將其輸出

destroylist

(l3)

;return0;

}void

connectlist

(list *la, list *lb, list *

&lc)

//有序鍊錶的合併

這是上述**對應的執行結果

線性表(順序表 鍊錶)

在程式中,經常需要將一組 通常是同為某個型別的 資料元素作為整體管理和使用,需要建立這種元素組,用變數記錄他們傳進傳出函式等。一組資料中包含的元素個數可能發生變化。對於這種需求,最簡單的解決方案就是將這樣一組元素看成乙個序列,用元素在序列裡的位置和順序,表示實際應用中的某種有意義的資訊,或者表示資料...

無序線性表合併(鍊錶)

分析 無序兩張表la,lb,需要遍歷lb查重再插入la尾 include include include include 包含exit標頭檔案 include include define ok 1 define error 0 define length a 5 define length b 3...

線性表之順序表和煉表

標籤 單鏈表 順序表優缺點 時間複雜度 線性表 2016 03 23 23 43 5200人閱讀收藏 舉報 c c 44 作者同類文章x 這裡比較的是是基於c語言實現的順序表與單鏈表,與其他語言的實現可能會有差異,但我相信語言是相通的,它們的實現機制應該也差不多。1 what 什麼是順序表和單鏈表 ...