不帶頭借點的單鏈表的擴充套件功能

2022-08-29 12:30:15 字數 1905 閱讀 4813

// func2-1.cpp 不帶頭結點的單鏈表(儲存結構由c2-2.h定義)的擴充套件操作(3個)

// algo2-6.cpp和bo7-2.cpp用到

void insertascend(linklist &l,elemtype e,int(*compare)(elemtype,elemtype))

}linklist point(linklist l,elemtype e,status(*equal)(elemtype,elemtype),linklist &p)

p=l;

for(j=2;jnext;

return p->next;

} return null; // 沒找到

}status deleteelem(linklist &l,elemtype &e,status(*equal)(elemtype,elemtype))

return false;

}

#include"c1.h"

#define namelen 8 // 姓名最大長度

#define classlen 4 // 班級名最大長度

struct stud // 記錄的結構

;typedef stud elemtype; // 鍊錶結點元素型別為結構體(見圖2.18)

#include"c2-2.h"

#include"bo2-8.cpp" // 無頭結點單鏈表的部分基本操作

#include"func2-1.cpp" // 無頭結點單鏈表的擴充套件操作

char sta[3][9]=; // 健康狀況(3類)(見圖2.19)

file *fp; // 全域性變數

void print(stud e)

void readin(stud &e)

void writetofile(stud e)

status readfromfile(stud &e)

int cmp(elemtype c1,elemtype c2)

void modify(linklist &l,elemtype e)

#define n 4 // student記錄的個數

status equalnum(elemtype c1,elemtype c2)

status equalname(elemtype c1,elemtype c2)

void main()

,, ,};

int i,j,flag=1;

char filename[13];

elemtype e;

linklist t,p,q;

initlist(t); // 初始化鍊錶

結構體stud 的health 域的型別是整型,其值的範圍是0~2,通過陣列sta(見圖219)

轉換為3 種健康狀況。為直觀,圖2-20~圖2-22 中顯示的是轉換後的結果。

執行後的結果如下所示:

不帶頭借點的單鏈表的擴充套件功能

func2 1.cpp 不帶頭結點的單鏈表 儲存結構由c2 2.h定義 的擴充套件操作 3個 algo2 6.cpp和bo7 2.cpp用到 void insertascend linklist l,elemtype e,int compare elemtype,elemtype linklist ...

不帶頭借點的單鏈表的擴充套件功能

func2 1.cpp 不帶頭結點的單鏈表 儲存結構由c2 2.h定義 的擴充套件操作 3個 algo2 6.cpp和bo7 2.cpp用到 void insertascend linklist l,elemtype e,int compare elemtype,elemtype linklist ...

不帶頭借點的單鏈表的擴充套件功能

func2 1.cpp 不帶頭結點的單鏈表 儲存結構由c2 2.h定義 的擴充套件操作 3個 algo2 6.cpp和bo7 2.cpp用到 void insertascend linklist l,elemtype e,int compare elemtype,elemtype linklist ...