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

2021-07-23 04:51:07 字數 3452 閱讀 6527

/*

*檔名稱:danlianbiao.cpp

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

*版本號:vc++6.0

**問題描述:單鏈表的逆序輸出

*輸入描述:無

*程式輸出:調整後的單鏈表

*/#ifndef linklist_h_included

#define linklist_h_included

#include

#include

#include

typedef

intelemtype;  

typedef

struct

lnode        

//定義單鏈表結點型別

linklist;  

void

createlistf(linklist *&l,elemtype a,

intn);

//頭插法建立單鏈表

void

createlistr(linklist *&l,elemtype a,

intn);

//尾插法建立單鏈表

void

initlist(linklist *&l);  

//初始化線性表

void

destroylist(linklist *&l);  

//銷毀線性表

bool

listempty(linklist *l);  

//判斷線性表是否為空

intlistlength(linklist *l);  

//求線性表長度

void

displist(linklist *l);  

//輸出線性表

bool

getelem(linklist *l,

inti,elemtype &e);  

//求線性表某個資料元素值

intlocateelem(linklist *l,elemtype e);  

//按元素值查詢

bool

listinsert(linklist *&l,

inti,elemtype e);  

//插入資料元素

bool

listdelete(linklist *&l,

inti,elemtype &e);  

//刪除資料元素

bool

increase(linklist *l);  

#endif // linklist_h_included

[cpp]view plain

copy

#include "link.h"

intmain()  

;  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]);  

printf("a: %c\n"

, increase(a)?

'y':

'n');  

printf("b: %c\n"

, increase(b)?

'y':

'n');  

destroylist(a);  

destroylist(b);  

return

0;  

}  

[cpp]view plain

copy

#include "link.h"

//頭插法

void

createlistf(linklist *&l,elemtype a,

intn)  

}  //尾插法

void

createlistr(linklist *&l,elemtype a,

intn)  

r->next=null;  

}  //初始化線性表

void

initlist(linklist *&l)  

//銷毀線性表

void

destroylist(linklist *&l)  

free(pre);  

}  //判斷線性表是否為空

bool

listempty(linklist *l)  

//求線性表長度

intlistlength(linklist *l)  

return

n;  

}  //輸出線性表

void

displist(linklist *l)  

printf("\n"

);  

}  //求線性表某個資料元素值

bool

getelem(linklist *l,

inti,elemtype &e)  

if(p==null)  

return

false

;  else

}  //按元素值查詢

intlocateelem(linklist *l,elemtype e)  

if(p==null)  

return

0;  

else

return

1;  

}  //插入資料元素

bool

listinsert(linklist *&l,

inti,elemtype e)  

if(p==null)  

return

false

;  else

}  //刪除資料元素

bool

listdelete(linklist *&l,

inti,elemtype &e)  

if(p==null)  

return

false

;  else

}[cpp]view plain

copy

//節點逆序

#include "link.h"

bool

increase(linklist *l)  

else

return

false

;    

}  return

true

;  }  

執行結果:

知識點總結:

利用迴圈,將指標p指向鍊錶a的最後乙個有效節點,再將指標p指向鍊錶b的有效節點,並將b的頭結點釋放。

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

檔名稱 專案3 單鏈表應用 3 cpp 作 者 佟興鋒 完成日期 2015年10月4日 版 本 號 v1.0 問題描述 設計乙個演算法,判斷單鏈表l是否是遞增的。實現這個演算法,並完成測試。程式中利用了已經實現的單鏈表演算法,標頭檔案linklist.h及其中函式的實現見單鏈表演算法庫 includ...

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

問題與 檔名稱 linkhead.h,main.cpp,zdy.cpp,increase.cpp 完成日期 2015年10月16日 版本號 v1.0 問題描述 設計乙個演算法,判斷單鏈表l是否是遞增的。實現這個演算法,並完成測試。輸入描述 無 程式輸出 若干資料 include include in...

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

問題 檔名稱 專案3.cpp 作 者 陳晨 完成日期 2016年9月18日 版 本 號 v1.0 問題描述 設計乙個演算法,判斷單鏈表l是否是遞增的。實現這個演算法,並完成測試。輸入描述 無 程式輸出 判斷結果 利用單鏈表庫,linklist.h和linklist.cpp 詳見單鏈表演算法庫。mai...