第四周 專案3 單鏈表應用(2)

2021-07-23 05:00:04 字數 2824 閱讀 3819

/*

*檔名稱:傳寫.cpp

*完成日期:2023年9月26日

*版本號:v1.0

**問題描述:

已知l1和l2分別指向兩個單鏈表的頭結點,且已知其長度分別為m、n,請設計演算法將l2連線到l1的後面

*輸入描述:

*輸出描述:

main.cpp

#include "linklist.h"  

void link(linklist *&l1, linklist *&l2)  

int main()  

;  elemtype b= ;  

initlist(a);  

for(i=3; i>=0; i--)  

listinsert(a, 1, a[i]);  

initlist(b);  

for(i=5; i>=0; i--)  

listinsert(b, 1, b[i]);  

link(a, b);  

printf("a:");  

displist(a);  

destroylist(a);  

return 0;  

}linklist.cpp

#include

#include "linklist.h"  

void createlistf(linklist *&l,elemtype a,int n)//頭插法建立單鏈表  

}  void createlistr(linklist *&l,elemtype a,int n)//尾插法建立單鏈表  

r->next=null;           //終端結點next域置為null  

}  void initlist(linklist *&l)  

void destroylist(linklist *&l)  

free(p);    //此時q為null,p指向尾結點,釋放它  

}  bool listempty(linklist *l)  

int listlength(linklist *l)  

return(i);  

}  void displist(linklist *l)  

printf("\n");  

}  bool getelem(linklist *l,int i,elemtype &e)  

if (p==null)            //不存在第i個資料結點  

return false;  

else                    //存在第i個資料結點  

}  int locateelem(linklist *l,elemtype e)  

if (p==null)  

return(0);  

else  

return(n);  

}  bool listinsert(linklist *&l,int i,elemtype e)  

if (p==null)    //未找到位序為i-1的結點  

return false;  

else            //找到位序為i-1的結點*p  

}  bool listdelete(linklist *&l,int i,elemtype &e)  

if (p==null)                //未找到位序為i-1的結點  

return false;  

else                        //找到位序為i-1的結點*p  

} linklist.h

#ifndef linklist_h_included  

#define linklist_h_included  

#include

#include

typedef int elemtype;  

typedef struct lnode        //定義單鏈表結點型別  

linklist;  

void createlistf(linklist *&l,elemtype a,int n);//頭插法建立單鏈表  

void createlistr(linklist *&l,elemtype a,int n);//尾插法建立單鏈表  

void initlist(linklist *&l);  //初始化線性表  

void destroylist(linklist *&l);  //銷毀線性表  

bool listempty(linklist *l);  //判斷線性表是否為空  

int listlength(linklist *l);  //求線性表長度  

void displist(linklist *l);  //輸出線性表  

bool getelem(linklist *l,int i,elemtype &e);  //求線性表某個資料元素值  

int locateelem(linklist *l,elemtype e);  //按元素值查詢  

bool listinsert(linklist *&l,int i,elemtype e);  //插入資料元素  

bool listdelete(linklist *&l,int i,elemtype &e);  //刪除資料元素  

#endif // linklist_h_inclu

執行結果:

知識點總結:

單鏈表的應用

學習心得:

理解了就更容易做了

第四周專案3 單鏈表應用 2

檔名稱 專案3 單鏈表應用 2 cpp 作 者 佟興鋒 完成日期 2015年10月4日 版 本 號 v1.0 問題描述 2 已知l1和l2分別指向兩個單鏈表的頭結點,且已知其長度分別為m n,請設計演算法將l2連線到l1的後面。實現這個演算法,完成測試,並分析這個演算法的複雜度。輸入描述 若干資料 ...

第四周專案3 單鏈表應用(2)

問題 檔名稱 專案3.cbp 作 者 李藝 完成日期 2015年10月5日 版 本 號 v1.0 問題描述 已知l1和l2分別指向兩個單鏈表的頭結點,且已知其長度分別為m n,請設計算 法將l2連線到l1的後面。實現這個演算法,完成測試,並分析這個演算法的複雜度。輸入描述 無 程式輸出 整理後的鍊錶...

第四周專案3單鏈表應用(2)

檔名稱 專案3 單鏈表應用 2 cpp 作 者 臧曉彤 完成日期 2015年10月12日 版 本 號 v1.0 問題描述 2 已知l1和l2分別指向兩個單鏈表的頭結點,且已知其長度分別為m n,請設計演算法將l2連線到l1的後面。實現這個演算法,完成測試,並分析這個演算法的複雜度。輸入描述 若干資料...