亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? bo2-6.c

?? C語言
?? C
字號:
 /* bo2-6.c 具有實用意義的線性鏈表(存儲結構由c2-5.h定義)的24個基本操作 */
 Status MakeNode(Link *p,ElemType e)
 { /* 分配由p指向的值為e的結點,并返回OK;若分配失敗。則返回ERROR */
   *p=(Link)malloc(sizeof(LNode));
   if(!*p)
     return ERROR;
   (*p)->data=e;
   return OK;
 }

 void FreeNode(Link *p)
 { /* 釋放p所指結點 */
   free(*p);
   *p=NULL;
 }

 Status InitList(LinkList *L)
 { /* 構造一個空的線性鏈表 */
   Link p;
   p=(Link)malloc(sizeof(LNode)); /* 生成頭結點 */
   if(p)
   {
     p->next=NULL;
     (*L).head=(*L).tail=p;
     (*L).len=0;
     return OK;
   }
   else
     return ERROR;
 }

 Status ClearList(LinkList *L)
 { /* 將線性鏈表L重置為空表,并釋放原鏈表的結點空間 */
   Link p,q;
   if((*L).head!=(*L).tail)/* 不是空表 */
   {
     p=q=(*L).head->next;
     (*L).head->next=NULL;
     while(p!=(*L).tail)
     {
       p=q->next;
       free(q);
       q=p;
     }
     free(q);
     (*L).tail=(*L).head;
     (*L).len=0;
   }
   return OK;
 }

 Status DestroyList(LinkList *L)
 { /* 銷毀線性鏈表L,L不再存在 */
   ClearList(L); /* 清空鏈表 */
   FreeNode(&(*L).head);
   (*L).tail=NULL;
   (*L).len=0;
   return OK;
 }

 Status InsFirst(LinkList *L,Link h,Link s) /* 形參增加L,因為需修改L */
 { /* h指向L的一個結點,把h當做頭結點,將s所指結點插入在第一個結點之前 */
   s->next=h->next;
   h->next=s;
   if(h==(*L).tail) /* h指向尾結點 */
     (*L).tail=h->next; /* 修改尾指針 */
   (*L).len++;
   return OK;
 }

 Status DelFirst(LinkList *L,Link h,Link *q) /* 形參增加L,因為需修改L */
 { /* h指向L的一個結點,把h當做頭結點,刪除鏈表中的第一個結點并以q返回。 */
   /* 若鏈表為空(h指向尾結點),q=NULL,返回FALSE */
   *q=h->next;
   if(*q) /* 鏈表非空 */
   {
     h->next=(*q)->next;
     if(!h->next) /* 刪除尾結點 */
       (*L).tail=h; /* 修改尾指針 */
     (*L).len--;
     return OK;
   }
   else
     return FALSE; /* 鏈表空 */
 }

 Status Append(LinkList *L,Link s)
 { /* 將指針s(s->data為第一個數據元素)所指(彼此以指針相鏈,以NULL結尾)的 */
   /* 一串結點鏈接在線性鏈表L的最后一個結點之后,并改變鏈表L的尾指針指向新 */
   /* 的尾結點 */
   int i=1;
   (*L).tail->next=s;
   while(s->next)
   {
     s=s->next;
     i++;
   }
   (*L).tail=s;
   (*L).len+=i;
   return OK;
 }

 Position PriorPos(LinkList L,Link p)
 { /* 已知p指向線性鏈表L中的一個結點,返回p所指結點的直接前驅的位置 */
   /* 若無前驅,則返回NULL */
   Link q;
   q=L.head->next;
   if(q==p) /* 無前驅 */
     return NULL;
   else
   {
     while(q->next!=p) /* q不是p的直接前驅 */
       q=q->next;
     return q;
   }
 }

 Status Remove(LinkList *L,Link *q)
 { /* 刪除線性鏈表L中的尾結點并以q返回,改變鏈表L的尾指針指向新的尾結點 */
   Link p=(*L).head;
   if((*L).len==0) /* 空表 */
   {
     *q=NULL;
     return FALSE;
   }
   while(p->next!=(*L).tail)
     p=p->next;
   *q=(*L).tail;
   p->next=NULL;
   (*L).tail=p;
   (*L).len--;
   return OK;
 }

 Status InsBefore(LinkList *L,Link *p,Link s)
 { /* 已知p指向線性鏈表L中的一個結點,將s所指結點插入在p所指結點之前, */
   /* 并修改指針p指向新插入的結點 */
   Link q;
   q=PriorPos(*L,*p); /* q是p的前驅 */
   if(!q) /* p無前驅 */
     q=(*L).head;
   s->next=*p;
   q->next=s;
   *p=s;
   (*L).len++;
   return OK;
 }

 Status InsAfter(LinkList *L,Link *p,Link s)
 { /* 已知p指向線性鏈表L中的一個結點,將s所指結點插入在p所指結點之后, */
   /* 并修改指針p指向新插入的結點 */
   if(*p==(*L).tail) /* 修改尾指針 */
     (*L).tail=s;
   s->next=(*p)->next;
   (*p)->next=s;
   *p=s;
   (*L).len++;
   return OK;
 }

 Status SetCurElem(Link p,ElemType e)
 { /* 已知p指向線性鏈表中的一個結點,用e更新p所指結點中數據元素的值 */
   p->data=e;
   return OK;
 }

 ElemType GetCurElem(Link p)
 { /* 已知p指向線性鏈表中的一個結點,返回p所指結點中數據元素的值 */
   return p->data;
 }

 Status ListEmpty(LinkList L)
 { /* 若線性鏈表L為空表,則返回TRUE,否則返回FALSE */
   if(L.len)
     return FALSE;
   else
     return TRUE;
 }

 int ListLength(LinkList L)
 { /* 返回線性鏈表L中元素個數 */
   return L.len;
 }

 Position GetHead(LinkList L)
 { /* 返回線性鏈表L中頭結點的位置 */
   return L.head;
 }

 Position GetLast(LinkList L)
 { /* 返回線性鏈表L中最后一個結點的位置 */
   return L.tail;
 }

 Position NextPos(Link p)
 { /* 已知p指向線性鏈表L中的一個結點,返回p所指結點的直接后繼的位置 */
   /* 若無后繼,則返回NULL */
   return p->next;
 }

 Status LocatePos(LinkList L,int i,Link *p)
 { /* 返回p指示線性鏈表L中第i個結點的位置,并返回OK,i值不合法時返回ERROR */
   /* i=0為頭結點 */
   int j;
   if(i<0||i>L.len)
     return ERROR;
   else
   {
     *p=L.head;
     for(j=1;j<=i;j++)
       *p=(*p)->next;
     return OK;
   }
 }

 Position LocateElem(LinkList L,ElemType e,Status (*compare)(ElemType,ElemType))
 { /* 返回線性鏈表L中第1個與e滿足函數compare()判定關系的元素的位置, */
   /* 若不存在這樣的元素,則返回NULL */
   Link p=L.head;
   do
     p=p->next;
   while(p&&!(compare(p->data,e))); /* 沒到表尾且沒找到滿足關系的元素 */
   return p;
 }

 Status ListTraverse(LinkList L,void(*visit)(ElemType))
 { /* 依次對L的每個數據元素調用函數visit()。一旦visit()失敗,則操作失敗 */
   Link p=L.head->next;
   int j;
   for(j=1;j<=L.len;j++)
   {
     visit(p->data);
     p=p->next;
   }
   printf("\n");
   return OK;
 }

 Status OrderInsert(LinkList *L,ElemType e,int (*comp)(ElemType,ElemType))
 { /* 已知L為有序線性鏈表,將元素e按非降序插入在L中。(用于一元多項式) */
   Link o,p,q;
   q=(*L).head;
   p=q->next;
   while(p!=NULL&&comp(p->data,e)<0) /* p不是表尾且元素值小于e */
   {
     q=p;
     p=p->next;
   }
   o=(Link)malloc(sizeof(LNode)); /* 生成結點 */
   o->data=e; /* 賦值 */
   q->next=o; /* 插入 */
   o->next=p;
   (*L).len++; /* 表長加1 */
   if(!p) /* 插在表尾 */
     (*L).tail=o; /* 修改尾結點 */
   return OK;
 }

 Status LocateElemP(LinkList L,ElemType e,Position *q,int(*compare)(ElemType,ElemType))
 { /* 若升序鏈表L中存在與e滿足判定函數compare()取值為0的元素,則q指示L中 */
   /* 第一個值為e的結點的位置,并返回TRUE;否則q指示第一個與e滿足判定函數 */
   /* compare()取值>0的元素的前驅的位置。并返回FALSE。(用于一元多項式) */
   Link p=L.head,pp;
   do
   {
     pp=p;
     p=p->next;
   }while(p&&(compare(p->data,e)<0)); /* 沒到表尾且p->data.expn<e.expn */
   if(!p||compare(p->data,e)>0) /* 到表尾或compare(p->data,e)>0 */
   {
     *q=pp;
     return FALSE;
   }
   else /* 找到 */
   {
     *q=p;
     return TRUE;
   }
 }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线观看国产一区二区| 欧美性猛交xxxx黑人交 | 福利一区二区在线| 激情五月播播久久久精品| 免费观看在线色综合| 日本va欧美va精品发布| 人人超碰91尤物精品国产| 日本欧美一区二区| 蜜桃av一区二区| 国产永久精品大片wwwapp| 黑人精品欧美一区二区蜜桃 | 国产成人啪免费观看软件| 国产乱子伦视频一区二区三区 | 韩国av一区二区三区四区| 精品一二线国产| 国产精品综合二区| 不卡大黄网站免费看| 91福利视频网站| 3d动漫精品啪啪| 久久综合狠狠综合久久综合88| 久久色在线观看| 国产精品久久久久精k8 | 色呦呦日韩精品| 欧美日韩精品一区二区天天拍小说| 制服丝袜激情欧洲亚洲| 精品日韩欧美在线| 国产精品视频免费| 亚洲综合av网| 国产真实乱对白精彩久久| 国产成人精品免费看| 在线一区二区三区做爰视频网站| 69堂成人精品免费视频| 国产亚洲精久久久久久| 亚洲人精品一区| 青青国产91久久久久久 | 日韩免费看网站| 久久精品人人做人人爽人人| 亚洲精品国久久99热| 美女一区二区视频| 成人福利视频在线| 欧美精品在线视频| 国产日韩av一区| 欧美日韩一卡二卡三卡| 在线播放91灌醉迷j高跟美女 | 欧美人与禽zozo性伦| 欧美日韩一区国产| 欧美电影免费观看完整版| 国产亚洲欧洲一区高清在线观看| 国产农村妇女精品| 亚洲自拍偷拍图区| 国产黑丝在线一区二区三区| 韩国成人福利片在线播放| 成人午夜激情片| 91免费版在线| 欧美高清一级片在线观看| 久久综合久久综合久久综合| 亚洲精品自拍动漫在线| 亚洲综合在线电影| 亚洲蜜臀av乱码久久精品蜜桃| 有坂深雪av一区二区精品| 日韩国产欧美三级| 国产日韩视频一区二区三区| 亚洲婷婷在线视频| 在线观看亚洲精品视频| 精品久久久久久久一区二区蜜臀| 国产精品国产三级国产普通话蜜臀 | 中文字幕欧美激情一区| 亚洲.国产.中文慕字在线| jiyouzz国产精品久久| 日韩精品在线一区二区| 亚洲国产综合在线| av亚洲产国偷v产偷v自拍| 欧美成va人片在线观看| 亚洲韩国一区二区三区| 99国产精品视频免费观看| 久久久亚洲国产美女国产盗摄| 亚洲1区2区3区4区| 一本久道久久综合中文字幕| 日本一区二区三区高清不卡| 蜜臀av一级做a爰片久久| 欧美亚洲综合另类| 亚洲人精品午夜| 不卡欧美aaaaa| 久久精品人人做人人爽人人| 精一区二区三区| 欧美精品tushy高清| 亚洲午夜久久久| 色综合久久88色综合天天免费| 国产视频不卡一区| 精品亚洲成av人在线观看| 欧美一区2区视频在线观看| 亚洲成人精品一区二区| 在线亚洲欧美专区二区| www.日韩av| 欧美色精品在线视频| 91麻豆国产香蕉久久精品| 国产视频一区二区在线| 精品亚洲免费视频| 日韩精品专区在线影院重磅| 视频在线在亚洲| 91精品国产色综合久久久蜜香臀| 亚洲福利国产精品| 欧美午夜在线观看| 伊人色综合久久天天人手人婷| 在线中文字幕一区二区| 亚洲精品水蜜桃| 欧美在线free| 视频一区在线播放| 日韩精品一区二区三区四区视频| 日韩国产精品大片| 欧美成人video| 国产麻豆视频精品| 久久久久高清精品| 国产成人在线色| 国产一区91精品张津瑜| 中文字幕日韩欧美一区二区三区| 精品国产成人在线影院| 欧美v国产在线一区二区三区| 97se亚洲国产综合自在线不卡| 麻豆精品视频在线观看视频| 91蜜桃视频在线| 国产午夜精品一区二区三区视频 | 国产偷国产偷亚洲高清人白洁| 国产成人综合精品三级| 国产精品不卡视频| 91国偷自产一区二区使用方法| 亚洲r级在线视频| 欧美一级爆毛片| 国产91精品免费| 一区二区三区四区av| 在线播放/欧美激情| 狠狠色综合色综合网络| 国产日产欧产精品推荐色| 91蜜桃免费观看视频| 天堂va蜜桃一区二区三区漫画版| 欧美一级欧美三级在线观看| 国产精品一卡二| 亚洲激情自拍偷拍| 日韩色视频在线观看| 国产高清在线观看免费不卡| 亚洲人成小说网站色在线 | 91精品国产91久久久久久最新毛片| 麻豆精品在线视频| 中文字幕一区av| 91精品国产综合久久精品| 国产精品一区二区免费不卡 | 亚洲午夜影视影院在线观看| 欧美一区二区三区婷婷月色| 国产成人精品在线看| 亚洲精品欧美激情| 日韩欧美一级在线播放| 欧美男男青年gay1069videost| 麻豆视频一区二区| 亚洲欧美一区二区三区极速播放 | 视频一区中文字幕国产| 国产网站一区二区三区| 欧美日韩精品高清| 粉嫩一区二区三区性色av| 亚洲一区二区三区四区在线免费观看 | 国产成人av一区二区三区在线| 亚洲国产色一区| 国产精品免费视频观看| 日韩欧美国产电影| 欧美怡红院视频| 国产精品一二三在| 免费在线观看视频一区| 亚洲视频一二三区| 国产色综合一区| 日韩一区二区三区免费看| 91免费国产视频网站| 美女网站色91| 亚洲成人动漫一区| 中文字幕亚洲成人| 国产欧美视频一区二区三区| 日韩欧美一级精品久久| 亚洲国产中文字幕| 国产欧美一区在线| 亚洲国产综合91精品麻豆| 国产一区视频在线看| 欧美日韩成人综合天天影院| 亚洲国产高清不卡| 亚洲国产精品一区二区久久| 免费精品视频在线| 在线观看亚洲专区| 94色蜜桃网一区二区三区| 日韩一区二区免费在线观看| 欧美国产乱子伦 | 国产99久久久国产精品免费看| 亚洲影院理伦片| 国产精品久久久久天堂| 欧美日韩国产片| 国产色爱av资源综合区| 国产一区二区在线观看视频| 理论电影国产精品| 亚洲大片免费看| 亚洲人成7777| 中文字幕一区二区视频| 国产亚洲成av人在线观看导航| 日韩精品专区在线影院观看| 欧美人与z0zoxxxx视频|