• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            我心飛翔

            有事不慌,無事不荒,有容乃大,無欲則剛,以德立綱,外圓內(nèi)方。

              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              1 隨筆 :: 9 文章 :: 13 評(píng)論 :: 0 Trackbacks

            struct Lnode  // 定義鏈表類型
            {
              ElemType data;
              struct Lnode *next;
             };
              typedef struct Lnode *LinkList;

              int InitList(LinkList &L)  //初始化一個(gè)鏈表
              {
                L=(LinkList)malloc(sizeof(Lnode));
                if(!L)
                 exit(OVERFLOW);
                 L->next=NULL;
                 return OK;
              }

              int DestroyList(LinkList &L)  //銷毀鏈表
              {
                LinkList q;
                while(L)
                {
                  q=L->next;
                  free(L);
                  L=q;
                }
                return OK;
              }

              int ClearList(LinkList L)  //清零操作
              {
                LinkList p,q;
                q=L->next;
                while(q)
                {
                  p=q->next;
                  free(q);
                  q=p;
                }
                L->next=NULL;
                return OK;
              }

              int ListEmpty(LinkList L)  //判空操作
              {
                if(L->next==NULL)
                return TRUE;
                else
                return FALSE;
              }

              int ListLength(LinkList L)  //計(jì)算鏈表的長(zhǎng)度
              {
                LinkList p;
                int i=0;
                p=L->next;
                while(p)
                {
                  ++i;
                  p=p->next;
                }
                return i;
              }

              int GetElem(LinkList L,int i,ElemType e)  //得到第i個(gè)元素的數(shù)據(jù)域
              {
                LinkList p;
                int j=0;
                p=L->next;
                while(p && j<i-1)
                {
                  p=p->next;
                  ++j;
                }
                if(j>i || !p)
                return ERROR;
                else
                e=p->data;
                return OK;
              }

              int LocateElem(LinkList L,ElemType e,int (*compare)(ElemType,ElemType))
              {                       //找到第一個(gè)對(duì)于E滿足函數(shù)的數(shù)據(jù)元素的位置
                LinkList p;
                int i=0;
                p=L->next;
                while(p)
                {
                  ++i;
                  if(compare(p->data,e))
                  return i;
                  p=p->next;
                }
                return 0;
              }

              int InsertList(LinkList L,int i,ElemType e)  //在第i個(gè)數(shù)據(jù)元素上插入一個(gè)元素
              {
                LinkList p,s;
                int j=0;
                p=L;
                while(p && j<i-1)
                {
                  p=p->next;
                  ++j;
                }
                if(!p || j>i)
                return ERROR;
                s=(LinkList)malloc(sizeof(Lnode));
                s->data=e;
                s->next=p->next;
                p->next=s;
                return OK;
              }

              int DeleteList(LinkList &L,int i,ElemType e) //刪除第i個(gè)元素
              {
                LinkList p,q;
                int j;
                j=0;
                p=L;
                while(p->next && j<i-1)
                {
                 p=p->next;
                 ++j;
                }
                if(!p->next || j>i)
                return ERROR;
                q=p->next;
                p->next=q->next;
                e=q->data;
                free(q);
                return OK;
              }

              int ListTraverse(LinkList L,int (*vi)(ElemType))
              //對(duì)所有鏈表中的元素進(jìn)行函數(shù)vi操作
              {
                LinkList p;
                p=L->next;
                while(p)
                {
                  vi(p->data);
                  p=p->next;
                }
                return OK;
              }

              void MergeList(LinkList La,LinkList Lb,LinkList &Lc)
              {                              //合并二個(gè)非遞減的La和Lb得到一個(gè)非遞減的Lc
                LinkList pa,pb,pc;
                pa=La->next;
                pb=Lb->next;
                Lc=pc=La;
                while(pa && pb)
                {
                  if(pa->data <= pb->data)
                  {
                    pc->next=pa;
             pc=pa;
             pa=pa->next;
                  }
                  else{
                    pc->next=pb;
             pc=pb;
             pb=pb->next;
                  }
                }
                pc->next=pa?pa:pb;
                free(Lb);
             Lb=NULL;
              }

            posted on 2005-10-11 22:48 無情雨 閱讀(1447) 評(píng)論(2)  編輯 收藏 引用 所屬分類: 數(shù)據(jù)結(jié)構(gòu)

            評(píng)論

            # re: 線性鏈表的操作(C語言) 2007-04-20 13:54 123456
            請(qǐng)問一下,這個(gè) int ListTraverse(LinkList L,int (*vi)(ElemType))
            在主函數(shù)如何應(yīng)用,就是具體應(yīng)該怎樣實(shí)現(xiàn)??
            謝謝
              回復(fù)  更多評(píng)論
              

            # re: 線性鏈表的操作(C語言) 2007-04-20 16:12 wzqxp2002
            最好進(jìn)一步用模版實(shí)現(xiàn)  回復(fù)  更多評(píng)論
              

            伊人久久大香线焦AV综合影院| 久久久亚洲欧洲日产国码二区| 亚洲国产精品综合久久一线| 亚洲欧美另类日本久久国产真实乱对白| 国产欧美久久久精品影院| 亚洲va久久久噜噜噜久久天堂| 国产99久久久国产精品~~牛| 久久影视综合亚洲| 久久精品亚洲日本波多野结衣| 久久人妻少妇嫩草AV蜜桃| 久久一日本道色综合久久| 久久久国产一区二区三区| 亚洲国产另类久久久精品小说| 久久久噜噜噜久久中文字幕色伊伊| 亚洲综合日韩久久成人AV| 久久精品国产99久久久香蕉| 久久久久久无码Av成人影院| 亚洲精品国精品久久99热| 热久久这里只有精品| 久久久久久国产精品无码超碰| 中文成人无码精品久久久不卡| 国产高清美女一级a毛片久久w| 国产精品禁18久久久夂久| 亚洲中文久久精品无码ww16| 久久精品综合一区二区三区| 久久精品免费一区二区三区| 天天爽天天狠久久久综合麻豆| 国产69精品久久久久APP下载| 久久精品国产第一区二区| 夜夜亚洲天天久久| 青青草原1769久久免费播放| 九九久久99综合一区二区| 国内精品久久久久影院日本| 人妻无码αv中文字幕久久| 亚洲精品乱码久久久久久蜜桃图片 | 色狠狠久久综合网| 亚洲国产天堂久久久久久| 亚洲午夜无码久久久久小说| 久久久久波多野结衣高潮| 99久久精品免费看国产一区二区三区| 久久久久国产精品嫩草影院|