鍊錶實現與應用

2021-10-14 12:14:32 字數 2105 閱讀 1587

合併列表

線性表鏈式儲存實驗3 有公升序鏈式儲存的順序表la,存放字元『a』,『c』, 『e』, 『g』 和lb存放字元『a』, 『b』,『d』,『f』。現通過合併演算法,將兩個鍊錶合併,要求合併後仍為非降序,然後輸出合併後的鍊錶。 答案要求: 1、將執行結果截圖貼在答案框,注意不要全屏截圖,以保證清晰 2、將main()方法的**貼入答案框 3、將整個專案的**壓縮,以附件形式上傳

common.c

#include

#include

#include

#include//用於設定隨機數種子用

#define ok 1

#define error 0

#define true 1

#define false 0

#include"common.h"

typedef char elemtype; //鍊錶資料結點中為字元型別

//鍊錶結構定義

typedef struct node

node,*linklist; //兩個型別名字:node用於定義結點,linklist用於定義鍊錶

//演算法功能:初始化單鏈表

void initlist(linklist *l);

//演算法功能:輸出鍊錶內容

void printlist(linklist l);

//演算法功能:頭插法建立單鏈表

void createfromhead(linklist l);

//演算法功能:尾插法建立單鏈表

void createfromtail(linklist l);

//演算法功能:在單鏈表l中查詢第i個結點

node * get(linklist l,int i);

//演算法功能:在單鏈表l中查詢值為key的結點

node * locate(linklist l,elemtype key);

//演算法功能:單鏈表插入操作演算法 ,在第i個位置插入e

void inslist(linklist l,int i,elemtype e);

//演算法功能:刪除單鏈表中第i個結點

int dellist(linklist l,int i,elemtype *e);

//演算法:兩個有序單鏈表的合併

linklist mergelinklist(linklist la, linklist lb);

#include"linklist.h"

//對單鏈表進行初始化

void initlist(linklist *l)

//演算法功能:輸出鍊錶內容

void printlist(linklist l)

}//尾插法建立單鏈表

void createfromtail (linklist l)

else}}

//演算法:兩個有序單鏈表的合併

linklist mergelinklist(linklist la, linklist lb)

else

} //如果la或lb有剩下的結點,則直接鏈入lc(r)後

if(pa!=null)

r->next=pa;

else

r->next=pb;

free(lb) ; //釋放lb頭結點,

return(lc);}

#include"linklist.h"

//對單鏈表進行初始化

void initlist(linklist *l)

//演算法功能:輸出鍊錶內容

void printlist(linklist l)

}//尾插法建立單鏈表

void createfromtail (linklist l)

else}}

//演算法:兩個有序單鏈表的合併

linklist mergelinklist(linklist la, linklist lb)

else

} //如果la或lb有剩下的結點,則直接鏈入lc(r)後

if(pa!=null)

r->next=pa;

else

r->next=pb;

free(lb) ; //釋放lb頭結點,

return(lc);

繼承與多型的應用 通用鍊錶的實現

繼承與多型的應用 通用鍊錶的實現 1.掌握繼承與多型 2.掌握純虛函式與抽象類以及介面的含義 3.通過多型的形式,建立與型別無關的通用鍊錶 include include using namespace std class object virtual object public virtual v...

C 實現順序表與鍊錶

c 實現順序表與鍊錶 一 順序表 之前已經對順序表有了了解,需要注意的是讀者如果疑惑以下 沒有實現頭插與頭刪,是因為 中任意插入與刪除這兩個函式可以實現此功能。下面有測試 讀者也可以自行測試。如下 includeusing namespace std includetypedef int datat...

鍊錶應用 快速刪除與倒置

快速刪除乙個結點,常規刪結點要找到前乙個結點,如果給出這個結點的指標,可以採取拷貝下乙個結點內容,釋放下乙個結點 單鏈表的倒序反轉,只需將p指向的結點不斷掛到頭結點,將p不斷向下移動即可 include includetypedef struct node node typedef node pno...