/*
* 煙台大學計算機與控制工程學院
* 完成日期:2023年9月18日
* 問題及**:
* 問題描述:單鏈表演算法庫演算法庫採用程式的多檔案組織形式,包括兩個檔案:
* 輸入描述:無
* 程式輸出:結果 */
1.標頭檔案:linklist.h,包含定義順序表資料結構的**、巨集定義、要實現演算法的函式的宣告;
[csharp]view plain
copy
#ifndef linklist_h_included
#define linklist_h_included
typedef int
elemtype;
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);
//刪除資料元素
#endif // linklist_h_included
2.原始檔:linklist.cpp,包含實現各種演算法的函式的定義
[csharp]view plain
copy
#include
#include
#include "linklist.h"
void
createlistf(linklist *&l,elemtype a,
intn)
//頭插法建立單鏈表
} void
createlistr(linklist *&l,elemtype a,
intn)
//尾插法建立單鏈表
r->next=null; //終端結點next域置為null
} void
initlist(linklist *&l)
void
destroylist(linklist *&l)
free(p); //此時q為null,p指向尾結點,釋放它
} bool
listempty(linklist *l)
intlistlength(linklist *l)
return
(i);
} void
displist(linklist *l)
printf("\n"
);
} bool
getelem(linklist *l,
inti,elemtype &e)
if(p==null)
//不存在第i個資料結點
return
false
; else
//存在第i個資料結點
} intlocateelem(linklist *l,elemtype e)
if(p==null)
return
(0);
else
return
(n);
} bool
listinsert(linklist *&l,
inti,elemtype e)
if(p==null)
//未找到位序為i-1的結點
return
false
; else
//找到位序為i-1的結點*p
} bool
listdelete(linklist *&l,
inti,elemtype &e)
if(p==null)
//未找到位序為i-1的結點
return
false
; else
//找到位序為i-1的結點*p
} 3.建立乙個原始檔(如main.cpp),編制main函式,完成相關的測試工作。
[csharp]view plain
copy
#include "linklist.h"
intmain()
執行結果:
學習總結:
(1)插入節點時,這兩個語句的順序不能顛倒,s->next=p->next;p->next=s;
(2)刪除節點的操作,p->next=p->next->next;也可以設乙個中間量q;
(3)在單鏈表中,插入乙個節點必須先找到插入該節點的前驅節點;刪除乙個節點亦是如此;
學習心得:
能自由插入、刪除鍊錶,很有成就感。
第三週 專案2 建設順序表演算法庫
檔名稱 cpp.cpp 作者 王超 完成日期 2015.9.18 問題描述 建設順序表演算法庫 include include define maxsize 50 typedef int elemtype typedef struct sqlist void createlist sqlist l,...
第三週專案2 建設「順序表」演算法庫
問題及 檔名稱 專案2.cbp 作 者 完成日期 2015年9月16日 版 本 號 v1.0 問題描述 請採用程式的多檔案組織形式,在專案1的基礎上,建立 如上的兩個檔案,另外再建立乙個原始檔,編制main函 數,完成相關的測試工作。輸入描述 無 程式輸出 依據各個函式而定 list.h檔案 ifn...
第三週 專案2 建設「順序表」演算法庫
01.04.檔名稱 list.cpp 05.作 者 蘇凱祺 06.完成日期 2014年10月9號 07.版 本 號 v1.0 08.問題描述 建設 順序表 的演算法庫 09.list.h ifndef list h included define list h included define max...