(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...