資料結構 線性表

2021-08-08 18:42:08 字數 2406 閱讀 5008

(1)將兩個遞增的有序鍊錶合併為乙個遞增的有序鍊錶。

要求結果鍊錶仍使用原來兩個鍊錶的儲存空間,

不另外占用其它的儲存空間。表中不允許有重複的資料。

#include#include#include#includeusing namespace std;

#define ok 1

#define error 0

#define overflow -2

typedef struct lnode lnode, *linklist; //linklist為指向結構體lnode的指標型別

void mergelist(linklist &la,linklist &lb,linklist &lc) else if(pa->data == pb->data) else

} pc->next = pa ? pa : pb;

delete lb;

}int initlist_l(linklist &l)

void create_list(linklist &l,int x)

cout<<"\n";

}void print(linklist l)

cout<<"\n";

}int main()

(2)

將兩個非遞減的有序鍊錶合併為乙個非遞增的有序鍊錶。要求結果鍊錶仍使用原來兩個鍊錶的儲存空間

, 不另外占用其它的儲存空間。表中允許有重複的資料。

#include#include#include#includeusing namespace std;

#define ok 1

#define error 0

#define overflow -2

typedef struct lnode lnode, *linklist; //linklist為指向結構體lnode的指標型別

void mergelist(linklist &la,linklist &lb,linklist &lc)

else if(!pb)

else if(pa->data <= pb->data) else

q->next = lc->next;

lc->next = q;

} delete lb;

}int initlist_l(linklist &l)

void create_list(linklist &l,int x)

cout<<"\n";

}void print(linklist l)

cout<

(6)設計乙個演算法,通過一趟遍歷在單鏈表中確定值最大的結點。

#include#include#include#includeusing namespace std;

#define ok 1

#define error 0

#define overflow -2

typedef struct lnode lnode, *linklist; //linklist為指向結構體lnode的指標型別

int max(linklist l)

p = p->next;

} return pmax->data;

}void create_list(linklist &l)

cout<<"\n";

}void print(linklist l)

coutreturn ok;

}int main() lnode, *linklist; //linklist為指向結構體lnode的指標型別

void inverse(linklist &l)

}void create_list(linklist &l)

cout<<"\n";

}void print(linklist l)

coutreturn ok;

}int main()

(10)已知長度為n的線性表a採用順序儲存結構,請寫一時間複雜度為o(n)、空間複雜度為o(1)的演算法,該演算法刪除線性表中所有值為item的資料元素。

#include#include#include#includeusing namespace std;

#define ok 1

#define error 0

#define overflow -2

#define maxsize 100 //順序表可能達到的最大長度

typedef struct sqlist;

int initlist_sq(sqlist &l)

void create_list(sqlist &l)

l.length = len;

cout<<"\n";

}void print(sqlist l)

資料結構(線性表)

1.試寫一演算法,在無頭結點的動態單鏈表上實現線性表操作insert l,i,b 並和在帶頭結點的動態單鏈表上實現相同操作的演算法進行比較。status insert linklist l,int i,int b 在無頭結點鍊錶l的第 i個元素之前插入元素 belse insert 2.已知線性表中...

資料結構 線性表

參考 一 線性表 順序表 單鏈表 迴圈鍊錶 雙鏈表 順序表 1.表的初始化 void initlist seqlist l 2.求表長 int listlength seqlist l 3.取表中第i個結點 datatype getnode l,i 4.查詢值為x的結點 5.插入 具體演算法描述 v...

資料結構 線性表

線性表是最基礎的一種資料結構,這樣的資料物件包含的資料元素具有一對一的前驅後繼關係。按其邏輯儲存方式的不同可分為兩類線性表 順序表和鏈式表。其中鏈式表又可分為線性鍊錶 迴圈鍊錶和雙向鍊錶。下面分別介紹下這幾種線性表的資料結構 1.順序表 typedef struct sqlist 插入演算法 i到n...