第四周 3 3專案 單鏈表演算法

2021-07-05 10:23:08 字數 2805 閱讀 1382

/*

*檔名稱:第四周【3.3專案 - 單鏈表演算法】

*完成日期:2014.09.25

*版號:v1.0

**問題描述:設計乙個演算法,判斷單鏈表l是否是遞增的。實現這個演算法,並完成測試

*輸入描述:無

*輸出描述:a: n

b: y

*/#include #include #include "linklist.h"

#ifndef linklist_h_included

#define linklist_h_included

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); //刪除資料元素

bool increase(linklist *l);

#endif // linklist_h_included

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

printf("a: %c\n", increase(a)?'y':'n');

printf("b: %c\n", increase(b)?'y':'n');

destroylist(a);

destroylist(b);

return 0;

}#include #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

}bool increase(linklist *l)

}return true;

}

*執行結果:

*知識點總結:

利用了已經實現的單鏈表演算法,加入要寫的函式,改變原來的main函式。

*心得體會:

注意標頭檔案的呼叫,開始的忽略了標頭檔案出現了莫名其妙的問題。

第四周專案3(3) 單鏈表遞增

問題描述及 cpp view plain copy 1.2.煙台大學計控學院 3.作 者 朱建豪 4.完成日期 2016年9月23日 5.問題描述 設計乙個演算法,判斷單鏈表l是否是遞增的。實現這個演算法,並完成測試。6.演算法庫的 cpp view plain copy 1.include2.in...

第四周 專案3 3

問題描述及 煙台大學計控學院 作 者 王力源 完成日期 2016年9月22日 問題描述 設計乙個演算法,判斷單鏈表l是否是遞增的。實現這個演算法,並完成測試。演算法庫的 include includetypedef int elemtype typedef struct lnode 定義單鏈表結點型...

第四周 專案四 單鏈表演算法庫

問題及 all right reserved.檔名稱 雙鏈表演算法庫.cpp 完成日期 2016年9月22日 版本號 v1.0 問題描述 用多檔案函式建立雙鏈表演算法庫 輸入描述 根據主函式而定,這裡是插入數字與計數 程式輸出 數字長度和插入數字後的數字排列 include include incl...