版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、知識就堤力量/* cl h (程序名)*/#in elude #in elude #include /* malloc()等 */#include /* INT_MAX 等 */#include /* EOF(=AZ 或 F6),NULL */#in clude /* atoi() */#in clude /* eof() */#in clude /* floor(),ceil(),abs() */#in clude /* exit() */*函數結果狀態(tài)代碼*/#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define IN
2、FEASIBLE -1/* #define OVERFLOW -2因為在 math.h中已定義 OVERFLOW 的值為3,故去掉此行 */typedef int Status; /* Status是函數的類型,其值是函數結果狀態(tài)代碼,如OK等*/typedef int Boolean; /* Boolean 是布爾類型,其值是 TRUE 或 FALSE */知識就堤力量/* algo2-1.c實現算法2.1的程序*/#include cl.htypedef int ElemType ;#include c2-1.h/*c2-1.h線性表的動態(tài)分配順序存儲結構*/#define LIST_IN
3、IT_SIZE 10 /*線性表存儲空間的初始分配量*/#define LISTINCREMENT 2/*線性表存儲空間的分配增量*/typedef structElemType *elem ; /*存儲空間基址 */int length ; /* 當前長度 */int listsize; /*當前分配的存儲容量 (以sizeof(ElemType )為單位)*/ SqList;#i nclude bo2-1.c/* bo2-1.c順序表示的線性表(存儲結構由c2-1.h定義)的基本操作(12個)*/Status InitList (SqList *L ) /* 算法 2.3 */ /*操作結
4、果:構造一個空的順序線性表*/(*L ).elem=(ElemType*) malloc(LIST_INIT_SIZE *sizeof(ElemType);if(!(*L).elem)exit(OVERFLOW); /* 存儲分配失敗 */(*L ).length=O; /* 空表長度為 0 */(*L ).listsize=LIST_INIT_SIZE ; /* 初始存儲容量 */return OK;Status DestroyList (SqList *L ) /*初始條件:順序線性表L已存在。操作結果:銷毀順序線性表L */free(*L ).elem);(*L ).elem=NULL;
5、(*L ).length=0;(*L ).listsize =0;return OK;Status ClearList (SqList *L) /*初始條件:順序線性表L已存在。操作結果:將L重置為空表*/(*L ).length=0;return OK;Status ListEmpty (SqList L)* 矢口 京丄15.* /*初始條件:順序線性表L已存在。操作結果:若L為空表,則返回TRUE,否則返回FALSE */if (L.le ngth=O)return TRUE;elsereturn FALSE;int List Le ngth(SqList L) /*初始條件:順序線性表L
6、已存在。操作結果:返回 L中數據元素個數 */return L.len gth;Status GetElem(SqList L, int i,ElemType *e) /*初始條件:順序線性表L已存在,1 i w ListLength(L) */*操作結果:用e返回L中第i個數據元素的值 */if(iL. length)exit(ERROR);*e=*(L. elem+i-1);return OK;int LocateElem(SqList L, ElemType e,Status(*compare)( ElemType, ElemType) /*初始條件:順序線性表L已存在,compare(
7、)是數據元素判定函數(滿足為1,否則為0) */ /*操作結果:返回 L中第1個與e滿足關系compare()的數據元素的位序。 */*若這樣的數據元素不存在,則返回值為0。算法2.6 */ElemType *p;int i=1; /* i的初值為第1個元素的位序 */p=L.elem; /* p的初值為第1個元素的存儲位置*/while (i=L. length&!compare(*p+,e)+i;if(i=L. length)return i;elsereturn 0;Status PriorElem(SqList L, ElemType cur_e,ElemType *pre_e) /*
8、初始條件:順序線性表L已存在*/*操作結果:若cur_e是L的數據元素,且不是第一個,則用pre_e返回它的前驅,*/*否則操作失敗,pre_e無定義*/int i=2;ElemType *p=L. elem+1;while (iL. length)return INFEASIBLE;else*pre_e=*_p;return OK;Status NextElem(SqList L,ElemType cur_e,ElemType *n ext_e) /*初始條件:順序線性表L已存在*/*操作結果:若cur_e是L的數據元素,且不是最后一個,則用next_e返回它的后繼,*/*否則操作失敗,ne
9、xt_e無定義*/int i=1;ElemType *p=L. elem;while (iL. length&*p!=cur_e)i+;p+;if(i=L. length)return INFEASIBLE;else*n ext_e=*+p;return OK;Status ListInsert( SqList *L ,int i, ElemType e) /* 算法 2.4 */ /*初始條件:順序線性表L已存在,1 i ListLength(L)+1 */*操作結果:在L中第i個位置之前插入新的數據元素e, L的長度加1 */ElemType *n ewbase,*q,*p;if(i(*L
10、).length+1) /* i 值不合法 */return ERROR;if(*L ).length=(*L ).listsize) /*當前存儲空間已滿,增加分配*/n ewbase=(ElemType*)realloc( *L ).elem,(*L ).listsize+LISTINCREMENT)* sizeof(ElemType);if (! newbase) exit(OVERFLOW); /* 存儲分配失敗*/(*L).elem=newbase; /* 新基址 */(*L).listsize+=LISTINCREMENT; /* 增加存儲容量*/q=(*L ).elem+i-1;
11、 /* q 為插入位置*/for(p=(*L ).elem+(*L ).length-1;p=q;-p) /* 插入位置及之后的元素右移*/*(p+1)=*p;*q=e; /* 插入 e */+(*L).length; /* 表長增 1 */return OK;Status ListDelete(SqList *L ,int i,ElemType *e) /* 算法 2.5 */ /*初始條件:順序線性表L已存在,1 i ListLength(L) */*操作結果:刪除L的第i個數據元素,并用e返回其值,L的長度減1 */ElemType *p,*q;if(i(*L).length) /* i
12、 值不合法 */return ERROR;p=(*L ).elem+i-1; /* p為被刪除元素的位置 */*e=*p; /*被刪除元素的值賦給e */q=(*L ).elem+(*L ).length-1; /* 表尾元素的位置*/for(+p;p=q;+p) /*被刪除元素之后的元素左移*/*(p-1)=*p;(*L ).length-; /* 表長減 1 */return OK;Status ListTraverse(SqList L,void(*vi)( ElemType *) /*初始條件:順序線性表L已存在*/*操作結果:依次對 L的每個數據元素調用函數vi()。一旦vi()失敗
13、,則操作失敗*/*vi()的形參加&,表明可通過調用vi()改變元素的值 */ElemType *p;int i;p=L.elem;for(i=1;i=L. length;i+)vi(p+);prin tf(n);return OK;Status equal(ElemType c1,ElemType c2) /*判斷是否相等的函數,Union()用到*/if (=c2)return TRUE;elsereturn FALSE;void Un io n( SqList *La,SqList Lb) /* 算法 2.1 */ /*將所有在線性表Lb中但不在La中的數據元素插入到La中*/ElemT
14、ype e;int La_le n,Lb_le n;int i;La_len=List Length(*L a); /* 求線性表的長度*/Lb_len=List Length(Lb);for(i=1;i=Lb_le n;i+)GetElem(Lb,i,&e); /*取Lb中第i個數據元素賦給 e */if (!Locate Elem(*L a,e,equal) /* La中不存在和 e相同的元素,則插入之*/ ListI nsert(La,+La_le n, e);void pri nt (ElemType *c)pri ntf(%d ,*c);void mai n()SqList La,L
15、b;Status i;in t j;i= InitList (&La);if(i=1) /*創(chuàng)建空表 La成功*/for(j=1;j=5;j+) /*在表La中插入5個元素*/i=List In sert (&La,j,j);printf(La= ); /* 輸出表 La 的內容 */ListTraverse(La,pr int);InitList (&Lb); /*也可不判斷是否創(chuàng)建成功*/for(j=1;j=5;j+) /*在表Lb中插入5個元素*/i=ListI nsert(&Lb,j,2*j);printf(Lb= ); /* 輸出表 Lb 的內容 */ListTraverse(Lb,
16、pr int);Un io n(&La,Lb);printf(new La= ); /* 輸出新表 La 的內容 */ListTraverse(La,pr int);/* algo2-2.c實現算法 22的程序*/#i nclude cl.htypedef int ElemType;#i nclude c2-1.h#i nclude bo2-1.cvoid MergeList( SqList La,SqList Lb,SqList *Lc) /* 算法 2.2 */ /*已知線性表La和Lb中的數據元素按值非遞減排列。*/*歸并La和Lb得到新的線性表Lc,Lc的數據元素也按值非遞減排列*/i
17、nt i=1,j=1,k=O;int La_le n,Lb_le n;ElemType ai,bj;InitList (Lc); /* 創(chuàng)建空表 Lc */La_len=List Length(La);Lb_len=List Length(Lb);while (i=La_len&j=Lb_len)/* 表 La 和表 Lb 均非空 */GetElem(La,i,&ai);GetElem(Lb,j,&bj);if (ai=bj)List In sert(Lc,+k,ai);+i;elseListI nsert(Lc,+k,bj);+j;while (i=La_len) /* 表 La 非空且表
18、Lb 空 */GetElem(La,i+,&ai);List In sert(Lc,+k,ai);while (j=Lb_len) /* 表 Lb 非空且表 La 空 */GetElem(Lb,j+,&bj);ListI nsert(Lc,+k,bj);void pri nt (ElemType *c)pri ntf(%d ,*c);void mai n()SqList La,Lb,Lc;in t j,a4=3,5,8,11,b7=2,6,8,9,11,15,20;InitList (&La); /* 創(chuàng)建空表 La */for(j=1;j=4;j+) /*在表La中插入4個元素 */List
19、I nsert(& La,j,aj-1);printf(La= ); /* 輸出表 La 的內容 */ListTraverse(La,pr int);InitList (&Lb); /* 創(chuàng)建空表 Lb */for(j=1;j=7;j+) /*在表Lb中插入7個元素*/ListI nsert(& Lb,j,bj-1);printf(Lb= ); /* 輸出表 Lb 的內容 */ListTraverse(Lb,pr int);MergeList(La,Lb,&Lc);printf(Lc= ); /* 輸出表 Lc 的內容 */ListTraverse(Lc,pr int);/* algo2-3.
20、c實現算法2.7的程序*/#i nclude cl.htypedef int ElemType;#i nclude c2-1.h#i nclude bo2-1.cvoid MergeList( SqList La, SqList Lb,SqList *L c) /* 算法 2.7 */ /*已知順序線性表La和Lb的元素按值非遞減排列。*/*歸并La和Lb得到新的順序線性表Lc,Lc的元素也按值非遞減排列*/ElemType *pa,*pa_last,*pb,*pb_last,*pc;pa=La.elem;pb=Lb. elem;(*L c).listsize=(*L c).length=La
21、.length+Lb. length;/*不用 InitList()創(chuàng)建空表 Lc */ pc=(*L c).elem=(ElemType *) malloc(*L c).listsize* sizeof(ElemType);if (!(*L c).elem) /* 存儲分配失敗 */exit(OVERFLOW);paast=La.elem+La.le ngth-1;pb_last=Lb. elem+Lb. length-1;while (pa=pa_last&pb=pb_last) /* 表 La 和表 Lb 均非空 */ /*歸并*/if (*pa=*pb)*pc+=*pa+;else*p
22、c+=*pb+;while (pa=pa_last) /* 表 La 非空且表 Lb 空 */ *pc+=*pa+; /*插入La的剩余元素*/while (pb=pb_last) /* 表 Lb 非空且表 La 空 */ *pc+=*pb+; /*插入Lb的剩余元素 */void pri nt(ElemType *c)pri ntf(%d ,*c);void mai n()SqList La,Lb,Lc;in t j;InitList (&La); /* 創(chuàng)建空表 La */for(j=1;j=5;j+) /*在表La中插入5個元素 */ListI nsert(&La,j,j);printf
23、(La= ); /* 輸出表 La 的內容 */ListTraverse(La,pr int);InitList (&Lb); /* 創(chuàng)建空表 Lb */for(j=1;j=5;j+) /*在表Lb中插入5個元素*/ ListI nsert(&Lb,j,2*j);printf(Lb= ); /* 輸出表 Lb 的內容 */ListTraverse(Lb,pr int);MergeList(La,Lb,&Lc);printf(Lc= ); /* 輸出表 Lc 的內容 */ListTraverse(Lc,pr int);/* algo2-4.c修改算法2.7的第一個循環(huán)語句中的條件語句為開關語句,
24、且當*/* *pa=*pb時,只將兩者中之一插入Lc。此操作的結果和算法2.1相同*/#in clude c1.htypedef int ElemType;#i nclude c2-1.h#in clude bo2-1.cint comp(ElemType c1,ElemType c2)知識就堤力量int i;if (c1c2)i=1;else if(c1=c2)i=0;elsei=-1;return i;void MergeList( SqList La,SqList Lb,SqList *L c) /*另一種合并線性表的方法(根據算法2.7下的要求修改算法2.7) */ElemType *
25、pa,*pa_last,*pb,*pb_last,*pc;pa=La.elem;pb=Lb. elem;(*L c).listsize=La.length+Lb. length; /* 此句與算法 2.7 不同 */pc=(*L c). elem=(ElemType *) malloc(*L c).listsize* sizeof(ElemType);if (!(*L c).elem)exit(OVERFLOW);paast=La.elem+La.le ngth-1;pb_last=Lb. elem+Lb. length-1;while (pa=pa_last&pb=pb_last) /* 表
26、 La 和表 Lb 均非空 */ switch(comp(*pa,*pb) /* 此句與算法 2.7 不同 */case 0: pb+;case 1:*pc+=*pa+;break;case -1:*pc+=*pb+;while (pa=pa_last) /* 表 La 非空且表 Lb 空 */*pc+=*pa+;while (pb=pb_last) /* 表 Lb 非空且表 La 空 */*pc+=*pb+;(*L c).length=pc-(*L c).elem; /* 加此句 */void pri nt (ElemType *c)pri ntf(%d ,*c);void mai n()S
27、qList La,Lb,Lc;in t j;InitList (&La); /* 創(chuàng)建空表 La */for(j=1;j=5;j+) /*在表La中插入5個元素 */ ListI nsert(&La,j,j);printf(La= ); /* 輸出表 La 的內容 */ListTraverse(La,pr int);InitList (&Lb); /* 創(chuàng)建空表 Lb */for(j=1;jnext=NULL; /* 指針域為空 */return OK;Status DestroyList (LinkList *L ) /*初始條件:線性表 L已存在。操作結果:銷毀線性表L */Lin kLi
28、st q;while (*L )q=(*L )-next;free(*L );*L =q;return OK;Status ClearList (LinkList L) /* 不改變 L */ /*初始條件:線性表 L已存在。操作結果:將L重置為空表*/Lin kList p,q;p=L-next; /* p指向第一個結點 */while (p) /*沒到表尾 */q=p-n ext;free(p);p=q;L-next=NULL; /*頭結點指針域為空*/return OK;Status ListEmpty (LinkList L) /*初始條件:線性表L已存在。操作結果:若L為空表,則返回
29、TRUE,否則返回FALSE*/if(L-next) /* 非空 */return FALSE;elsereturn TRUE;int List Length (LinkList L) /*初始條件:線性表 L已存在。操作結果:返回L中數據元素個數*/int i=0;LinkList p=L-next; /* p 指向第一個結點*/while (p) /*沒到表尾 */i+;p=p-n ext;return i;Status GetElem (LinkList L, int i,ElemType *e) /* 算法 2.8 */ /* L為帶頭結點的單鏈表的頭指針。當第i個元素存在時,其值賦給
30、e并返回OK,否則返回 ERROR */int j=1; /* j為計數器*/LinkList p=L-next; /* p 指向第一個結點*/while (p&jn ext;j+;if(!p|ji) /*第i個元素不存在 */return ERROR;*e=p-data; /* 取第 i 個元素 */return OK;int Locate Elem (LinkList L, ElemType e,Status(*compare)( ElemType ,ElemType )知識就堤力量 /n ext_e=p-n ext-data;初始條件:線性表L已存在,compare()是數據元素判定函數
31、(滿足為1,否則為0) */*操作結果:返回L中第1個與e滿足關系compare。的數據元素的位序。*/*若這樣的數據元素不存在,則返回值為0 */int i=0;Lin kList p=L-n ext;while (p)i+;if (compare(p-data,e) /*找到這樣的數據元素*/return i;p=p-n ext;return 0;Status Prior Elem (LinkList L, ElemType cur_e, ElemType *pre_e) /*初始條件:線性表L已存在*/*操作結果:若cur_e是L的數據元素,且不是第一個則用pre_e返回它的前驅,*/*
32、返回OK;否則操作失敗,pre_e無定義,返回INFEASIBLE */LinkList q,p=L-next; /* p 指向第一個結點*/while (p-next) /* p所指結點有后繼*/q=p-next; /* q 為 p 的后繼 */if (q-data=cur_e)*pre_e=p-data;return OK;p=q; /* p向后移*/return INFEASIBLE;Status NextElem (LinkList L, ElemType cur_e, ElemType *next_e) /*初始條件:線性表 L已存在*/*操作結果:若cur_e是L的數據元素,且不是
33、最后一個,則用next_e返回它的后繼,*/*返回OK;否則操作失敗,next_e無定義,返回INFEASIBLE */LinkList p=L-next;/* p 指向第一個結點*/while (p-next) /* p所指結點有后繼*/if (p-data=cur_e)知識就堤力量return OK;p=p-n ext;return INFEASIBLE;Status List In sert(L in kList L, in t i,ElemType e) /* 算法 2.9。不改變 L */ /*在帶頭結點的單鏈線性表 L中第i個位置之前插入元素e */int j=0;Lin kLis
34、t p=L,s;while (p&jn ext;j+;if (!p|ji-1) /* i小于1或者大于表長*/return ERROR;s=(LinkList) malloc (sizeof(struct LNode); /* 生成新結點 */s-data=e; /* 插入 L 中 */s-n ext=p-n ext;p_n ext=s;return OK;Status ListDelete(LinkList L,int i,ElemType *e) /* 算法 2.10。不改變 L */ /*在帶頭結點的單鏈線性表 L中,刪除第i個元素 拼由e返回其值*/ int j=0;Lin kList
35、 p=L,q;while (p-next&jn ext;j+;if (!p-next|ji-1) /* 刪除位置不合理*/return ERROR;q=p-next; /*刪除并釋放結點*/p_n ext=q _n ext;*e=q_data;free(q);return OK;Status ListTraverse(LinkList L,void(*vi)(ElemType )知識就堤力量/* vi的形參類型為 ElemType,與bo2-1.c中相應函數的形參類型ElemType &不同*/ /*初始條件:線性表 L已存在*/*操作結果:依次對L的每個數據元素調用函數vi()。一旦vi()
36、失敗,則操作失敗*/Lin kList p=L-n ext; while (p)vi(p_data); p=p-n ext;pri ntf(n);return OK;void CreateList(LinkList *L ,int n) /* 算法 2.11 */ /*逆位序(插在表頭)輸入n個元素的值,建立帶表頭結構的單鏈線性表L */int i;Lin kList p;*L =(LinkList) malloc(sizeof(struct LNode);(*L )-next=NULL; /*先建立一個帶頭結點的單鏈表*/printf(請輸入%d個數據n,n);for(i=n ;i0;_i)
37、p=(LinkList) malloc(sizeof(struct LNode); /* 生成新結點*/scanf(%d,&p-data); /* 輸入元素值 */p-next=( *L )-next; /* 插入到表頭 */(*L )_n ext=p;void CreateList2(LinkList *L ,int n) /*正位序(插在表尾)輸入n個元素的值,建立帶表頭結構的單鏈線性表*/int i;Lin kList p,q;*L =(LinkList) malloc(sizeof(struct LNode); /* 生成頭結點*/(*L )-next=NULL;q=*L ;print
38、f(請輸入%d個數據n,n);for(i=1;idata);q_n ext=p;q=q_n ext;知識就堤力量p- next=NULL;void MergeList(LinkList La,LinkList*L b,LinkList *L c)/* 算法 2.12 */ /*已知單鏈線性表La和Lb的元素按值非遞減排列。*/*歸并La和Lb得到新的單鏈線性表Lc, Lc的元素也按值非遞減排列*/LinkList pa=La-next,pb=( *L b)-next,pc;*L c=pc=La; /*用La的頭結點作為 Lc的頭結點 */while (pa&pb)if (pa-datadata
39、)pc-n ext=pa;pc=pa;pa=pa-n ext;elsepc-n ext=pb;pc=pb;pb=pb-n ext;pc-next=pa?pa:pb; /* 插入剩余段 */free(*L b); /*釋放Lb的頭結點 */Lb=NULL;void visit( ElemType c) /* ListTraverse()調用的函數(類型要一致)*/pri ntf(%d ,c);void mai n()int n=5;Lin kList La,Lb,Lc;printf(按非遞減順序,);CreateList2(&La,n); /*正位序輸入n個元素的值 */printf(La=);
40、 /*輸出鏈表 La的內容*/ListTraverse(La,visit);printf(按非遞增順序,);CreateList(&Lb,n); /*逆位序輸入 n個元素的值 */printf(Lb=); /*輸出鏈表Lb的內容*/ListTraverse(Lb,visit);MergeList(La,&Lb,&Lc);/*按非遞減順序歸并La和Lb,得到新表Lc */知識就堤力量printf(Lc=); /*輸出鏈表 Lc的內容*/ ListTraverse(Lc,visit);/* algo2-6.c利用單鏈表結構處理教科書圖2.1(學生健康登記表)*/#i nclude c1.h#def
41、ine NAMELEN 8 /* 姓名最大長度*/#define CLASSLEN 4 /*班級名最大長度*/struct stud /*記錄的結構 */char nameNAMELEN+1;long num;char sex;int age;char ClassCLASSLEN+1;int health;typedef struct stud ElemType; /*鏈表結點元素類型為結構體*/#i nclude c2-2.hchar sta39=健康 ,一般 ,神經衰弱; /*健康狀況(3類)*/FILE *fp;Status InitList (LinkList *L ) /* 拷自 b
42、o2-2.c */ /*操作結果:構造一個空的線性表L */*L =(LinkList) malloc(sizeof(struct LNode); /* 產生頭結點,并使 L 指向此頭結點*/if(!*L ) /*存儲分配失敗 */exit(OVERFLOW);(*L )-next=NULL; /* 指針域為空 */return OK;Status ListTraverse(LinkList L,void(*vi)( ElemType)/* 拷自 bo2-2.c */ /*初始條件:線性表 L已存在*/*操作結果:依次對L的每個數據元素調用函數vi()。一旦vi()失敗,則操作失敗*/Lin
43、kList p=L-n ext;while (p)vi(p-data);p=p-n ext;prin tf(n);return OK;知識就堤力量void InsertAscend(LinkList L, ElemType e) /* 此函數是由 bo2-9.c 中的同名函數改寫*/ /*按學號非降序插入*/Lin kList q=L,p=L-n ext;while (p&e.nump-data.num)q=p;p=p-n ext;q-next=(LinkList) malloc (sizeof(struct LNode); /* 插在 q 后 */q-n ext-data=e;q_n ext
44、- n ext=p;void Prin t (struct stud e) /*顯示記錄e的內容*/pri ntf(%-8s %6ld,e. name,e. nu m);if (e.sex=m)printf(” 男);elseprintf(” 女);prin tf(%5d %-4s,e.age,e.Class);pri ntf(%9sn,stae.health);void Read In (struct stud *e) /*由鍵盤輸入結點信息*/printf(” 請輸入姓名(n ame);printf(請輸入學號:);sca nf(%ld, &e- nu m);printf(”請輸入性別(m
45、:男f:女):);sca nf(%*c%c, &e-sex);printf(請輸入年齡:);sca nf(%d, &e-age);printf(請輸入班級(Class);printf(請輸入健康狀況(0:%s 1:%s 2:%s):,sta0,sta1,sta2);sca nf(%d, &e-health); void WriteToFile( struct stud e) /*將結點信息寫入fp指定的文件*/fwrite(&e, sizeof(struct stud),1,fp);Status ReadFromFile( struct stud *e) /*由fp指定的文件讀取結點信息到e
46、*/int i;i=fread(e, sizeof(struct stud),1,fp);if(i=1) /*讀取文件成功*/return OK;elsereturn ERROR;Status Fin dFromNum(L in kList L,l ong nu m,L in kList *p,L in kList *q) /*查找表中學號為num的結點,如找到,q指向此結點,p指向q的前驅,*/*并返回TRUE;如無此元素,則返回FALSE */*p=L;while (*p)*q=(*p)- next;if (*q&(*q)-data.numnum) /*因為是按學號非降序排列*/break;if (*q&(*q)-data.num=num)/* 找到該學號 */return TRUE;*p=*q;return FALSE;Status Fin dFromName(L in kList L,char n ame,L in kList *p,L in kList *q) /*查找表中姓名為name的結點,如找到,q指向此結點,p指向q的前驅,*/*并返回TRUE;如無此元素,則返回FALSE */*p=L;while (*p)*q=(*p)- next;if (*q&!strcm
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年跨境電商平臺入駐及貨款墊付合作協議3篇
- 2025版科技創(chuàng)新反擔保合同與研發(fā)設備抵押協議3篇
- 醫(yī)院與保險公司合同管理
- 畜牧業(yè)發(fā)展承諾書網上填報
- 廢舊輪胎處理合同
- 藝術空間租賃協議
- 消防安全評估防水施工合同
- 古玩市場物業(yè)員工招聘合同
- 個人工作室客戶意見箱管理方案
- 森林防火維護爆炸品庫房管理方案
- 2024新版(外研版三起孫有中)三年級英語上冊單詞帶音標
- 沙金礦承包開采合作協議書范文
- 2025屆安徽省合肥市一六八中高二數學第一學期期末經典試題含解析
- 英語四級模擬試題(附答案)
- 自來水廠考試題庫單選題100道及答案解析
- 2024智慧城市數據分類標準規(guī)范
- 教育學院院長述職報告范文
- 文玩交易合同(2篇)
- 智研咨詢發(fā)布-2024年中國牛油果行業(yè)現狀、發(fā)展環(huán)境及投資前景分析報告
- 杭州市西湖區(qū)2024年三年級數學第一學期期末學業(yè)質量監(jiān)測試題含解析
- 眼視光學理論與方法智慧樹知到答案2024年溫州醫(yī)科大學
評論
0/150
提交評論