freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

清華嚴(yán)蔚敏數(shù)據(jù)結(jié)構(gòu)資料的全部代碼實(shí)現(xiàn)c語言-資料下載頁

2025-06-27 05:58本頁面
  

【正文】 s[9].cur=5。 strcpy(s[9].data,SHI)。 i=s[0].cur。 while(i) /* (b)的狀態(tài) */ { printf(%s ,s[i].data)。 /* 輸出鏈表的當(dāng)前值 */ i=s[i].cur。 /* 找到下一個(gè) */ } printf(\n)。 }/* */ include define N 2 typedef char ElemType。 include include/* 、 () (3個(gè)) */ int Malloc(SLinkList space) /* */ { /* 若備用鏈表非空,則返回分配的結(jié)點(diǎn)下標(biāo)(備用鏈表的第一個(gè)結(jié)點(diǎn)),否則返回0 */ int i=space[0].cur。 if(i) /* 備用鏈表非空 */ space[0].cur=space[i].cur。 /* 備用鏈表的頭結(jié)點(diǎn)指向原備用鏈表的第二個(gè)結(jié)點(diǎn) */ return i。 /* 返回新開辟結(jié)點(diǎn)的坐標(biāo) */ } void Free(SLinkList space,int k) /* */ { /* 將下標(biāo)為k的空閑結(jié)點(diǎn)回收到備用鏈表(成為備用鏈表的第一個(gè)結(jié)點(diǎn)) */ space[k].cur=space[0].cur。 /* 回收結(jié)點(diǎn)的"游標(biāo)"指向備用鏈表的第一個(gè)結(jié)點(diǎn) */ space[0].cur=k。 /* 備用鏈表的頭結(jié)點(diǎn)指向新回收的結(jié)點(diǎn) */ } void DestroyList() { /* 靜態(tài)數(shù)組不能被銷毀 */ } include/* 一個(gè)數(shù)組可生成若干靜態(tài)鏈表()的基本操作(12個(gè)) */ void InitSpace(SLinkList L) /* 。另加 */ { /* 將一維數(shù)組L中各分量鏈成一個(gè)備用鏈表,L[0].cur為頭指針?!?”表示空指針 */ int i。 for(i=0。iMAXSIZE1。i++) L[i].cur=i+1。 L[MAXSIZE1].cur=0。 } int InitList(SLinkList L) { /* 構(gòu)造一個(gè)空鏈表,返回值為空表在數(shù)組中的位序 */ int i。 i=Malloc(L)。 /* 調(diào)用Malloc(),簡化程序 */ L[i].cur=0。 /* 空鏈表的表頭指針為空(0) */ return i。 } Status ClearList(SLinkList L,int n) { /* 初始條件:L中表頭位序?yàn)閚的靜態(tài)鏈表已存在。操作結(jié)果:將此表重置為空表 */ int j,k,i=L[n].cur。 /* 鏈表第一個(gè)結(jié)點(diǎn)的位置 */ L[n].cur=0。 /* 鏈表空 */ k=L[0].cur。 /* 備用鏈表第一個(gè)結(jié)點(diǎn)的位置 */ L[0].cur=i。 /* 把鏈表的結(jié)點(diǎn)連到備用鏈表的表頭 */ while(i) /* 沒到鏈表尾 */ { j=i。 i=L[i].cur。 /* 指向下一個(gè)元素 */ } L[j].cur=k。 /* 備用鏈表的第一個(gè)結(jié)點(diǎn)接到鏈表的尾部 */ return OK。 } Status ListEmpty(SLinkList L,int n) { /* 判斷L中表頭位序?yàn)閚的鏈表是否空,若是空表返回TRUE。否則返回FALSE */ if(L[n].cur==0) /* 空表 */ return TRUE。 else return FALSE。 } int ListLength(SLinkList L,int n) { /* 返回L中表頭位序?yàn)閚的鏈表的數(shù)據(jù)元素個(gè)數(shù) */ int j=0,i=L[n].cur。 /* i指向第一個(gè)元素 */ while(i) /* 沒到靜態(tài)鏈表尾 */ { i=L[i].cur。 /* 指向下一個(gè)元素 */ j++。 } return j。 } Status GetElem(SLinkList L,int n, int i,ElemType *e) { /* 用e返回L中表頭位序?yàn)閚的鏈表的第i個(gè)元素的值 */ int l,k=n。 /* k指向表頭序號 */ if(i1||iListLength(L,n)) /* i值不合理 */ return ERROR。 for(l=1。l=i。l++) /* 移動(dòng)i1個(gè)元素 */ k=L[k].cur。 *e=L[k].data。 return OK。 } int LocateElem(SLinkList L,int n,ElemType e) { /* 在L中表頭位序?yàn)閚的靜態(tài)單鏈表中查找第1個(gè)值為e的元素。 */ /* 若找到,則返回它在L中的位序,否則返回0 */ int i=L[n].cur。 /* i指示表中第一個(gè)結(jié)點(diǎn) */ while(iamp。amp。L[i].data!=e) /* 在表中順鏈查找(e不能是字符串) */ i=L[i].cur。 return i。 } Status PriorElem(SLinkList L,int n,ElemType cur_e,ElemType *pre_e) { /* 初始條件:在L中表頭位序?yàn)閚的靜態(tài)單鏈表已存在 */ /* 操作結(jié)果:若cur_e是此單鏈表的數(shù)據(jù)元素,且不是第一個(gè), */ /* 則用pre_e返回它的前驅(qū),否則操作失敗,pre_e無定義 */ int j,i=L[n].cur。 /* i為鏈表第一個(gè)結(jié)點(diǎn)的位置 */ do { /* 向后移動(dòng)結(jié)點(diǎn) */ j=i。 i=L[i].cur。 }while(iamp。amp。cur_e!=L[i].data)。 if(i) /* 找到該元素 */ { *pre_e=L[j].data。 return OK。 } return ERROR。 } Status NextElem(SLinkList L,int n,ElemType cur_e,ElemType *next_e) { /* 初始條件:在L中表頭位序?yàn)閚的靜態(tài)單鏈表已存在 */ /* 操作結(jié)果:若cur_e是此單鏈表的數(shù)據(jù)元素,且不是最后一個(gè), */ /* 則用next_e返回它的后繼,否則操作失敗,next_e無定義 */ int i。 i=LocateElem(L,n,cur_e)。 /* 在鏈表中查找第一個(gè)值為cur_e的元素的位置 */ if(i) /* 在靜態(tài)單鏈表中存在元素cur_e */ { i=L[i].cur。 /* cur_e的后繼的位置 */ if(i) /* cur_e有后繼 */ { *next_e=L[i].data。 return OK。 /* cur_e元素有后繼 */ } } return ERROR。 /* L不存在cur_e元素,cur_e元素?zé)o后繼 */ } Status ListInsert(SLinkList L,int n,int i,ElemType e) { /* 在L中表頭位序?yàn)閚的鏈表的第i個(gè)元素之前插入新的數(shù)據(jù)元素e */ int l,j,k=n。 /* k指向表頭 */ if(i1||iListLength(L,n)+1) return ERROR。 j=Malloc(L)。 /* 申請新單元 */ if(j) /* 申請成功 */ { L[j].data=e。 /* 賦值給新單元 */ for(l=1。li。l++) /* 移動(dòng)i1個(gè)元素 */ k=L[k].cur。 L[j].cur=L[k].cur。 L[k].cur=j。 return OK。 } return ERROR。 } Status ListDelete(SLinkList L,int n,int i,ElemType *e) { /* 刪除在L中表頭位序?yàn)閚的鏈表的第i個(gè)數(shù)據(jù)元素e,并返回其值 */ int j,k=n。 /* k指向表頭 */ if(i1||iListLength(L,n)) return ERROR。 for(j=1。ji。j++) /* 移動(dòng)i1個(gè)元素 */ k=L[k].cur。 j=L[k].cur。 L[k].cur=L[j].cur。 *e=L[j].data。 Free(L,j)。 return OK。 } Status ListTraverse(SLinkList L,int n,void(*vi)(ElemType)) { /* 依次對L中表頭位序?yàn)閚的鏈表的每個(gè)數(shù)據(jù)元素,調(diào)用函數(shù)vi()。一旦vi()失敗,則操作失敗 */ int i=L[n].cur。 /* 指向第一個(gè)元素 */ while(i) /* 沒到靜態(tài)鏈表尾 */ { vi(L[i].data)。 /* 調(diào)用vi() */ i=L[i].cur。 /* 指向下一個(gè)元素 */ } printf(\n)。 return OK。 } void difference(SLinkList space,int *S) /* */ { /* 依次輸入集合A和B的元素,在一維數(shù)組space中建立表示集合(AB)∪(BA) */ /* 的靜態(tài)鏈表,S為其頭指針。假設(shè)備用空間足夠大,space[0].cur為備用空間的頭指針 */ int r,p,m,n,i,j,k。 ElemType b。 InitSpace(space)。 /* 初始化備用空間 */ *S=Malloc(space)。 /* 生成S的頭結(jié)點(diǎn) */ r=*S。 /* r指向S的當(dāng)前最后結(jié)點(diǎn) */ printf(請輸入集合A和B的元素個(gè)數(shù)m,n:)。 scanf(%d,%d%*c,amp。m,amp。n)。 /* %*c吃掉回車符 */ printf(請輸入集合A的元素(共%d個(gè)):,m)。 for(j=1。j=m。j++) /* 建立集合A的鏈表 */ { i=Malloc(space)。 /* 分配結(jié)點(diǎn) */ scanf(%c,amp。space[i].data)。 /* 輸入A的元素值 */ space[r].cur=i。 /* 插入到表尾 */ r=i。 } scanf(%*c)。 /* %*c吃掉回車符 */ space[r].cur=0。 /* 尾結(jié)點(diǎn)的指針為空 */ printf(請輸入集合B的元素(共%d個(gè)):,n)。 for(j=1。j=n。j++) { /* 依次輸入B的元素,若不在當(dāng)前表中,則插入,否則刪除 */ scanf(%c,amp。b)。 p=*S。 k=space[*S].cur。 /* k指向集合A中的第一個(gè)結(jié)點(diǎn) */ while(k!=space[r].curamp。amp。space[k].data!=b) { /* 在當(dāng)前表中查找 */ p=k。 k=space[k].cur。 } if(k==space[r].cur) { /* 當(dāng)前表中不存在該元素,插入在r所指結(jié)點(diǎn)之后,且r的位置不變 */ i=Malloc(space)。 space[i].data=b。 space[i].cur=space[r].cur。 space[r].cur=i。 } else /* 該元素已在表中,刪除之 */ { space[p].cur=space[k].cur。 Free(space,k)。 if(r==k) r=p。 /* 若刪除的是尾元素,則需修改尾指針 */ } } } void visit(ElemType c) { printf(%c ,c)。 } void main() { int k。 SLinkList s。 difference(s,amp。k)。 ListTraverse(s,k,visit)。 }/* */ include define N 2 typedef char ElemType。 include include include void visit(ElemType c) { printf(%c ,c)。 } in
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1