乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      第十二課 實驗二 循環(huán)鏈表實驗

       Alex@ZW 2010-11-12

      本課主題: 實驗二 循環(huán)鏈表實驗

      教學(xué)目的: 掌握單向鏈表的實現(xiàn)方法

      教學(xué)重點: 單向鏈表的存儲表示及操作

      教學(xué)難點: 單向鏈表的操作實現(xiàn)

      授課內(nèi)容:

      一、單向鏈表的存儲表示

      C源程序

      #include<stdio.h>
      #include<malloc.h>
      #include<conio.h>
      
      #define ERROR 0
      #define OK 1
      #define EQUAL 1
      #define OVERFLOW -1
      #define LIST_INIT_SIZE 100
      #define LISTINCREMENT 10
      
      struct STU{
        char name[20];
        char stuno[10];
        int age;
        int score;
      }stu[50];
      typedef struct STU ElemType;
      
      struct LNODE
      {
        ElemType data;
        struct LNODE *next;
      };
      
      typedef struct LNODE LNode;
      typedef struct LNODE *LinkList;
      
      
      int init(LinkList *L)
      {
        *L=(LNode *)malloc(sizeof(LNode));
        if(!L)   exit(ERROR);
        (*L)->next=NULL;
        return OK;
      }/*init */
      
      int ListLength(LinkList L)
      {
        int j=0;
        while (L->next)
          {
            L=L->next;
            j++;
          }
        return j;
      }
      
      int GetElem(LinkList L,int i,ElemType *e)
      {
        LinkList p; int j;
        p=L->next;j=1;
        while(p&&j<i){
          p=p->next;++j;
        }
        if(!p||j>1)  return ERROR;
        *e=p->data;
        return OK;
      }
      
      int EqualList(ElemType *e1,ElemType *e2)
      {
        if (strcmp(e1->name,e2->name)==0)
          return 1;
        else
          return 0;
      }
      
      int Less_EqualList(ElemType *e1,ElemType *e2)
      {
        if (strcmp(e1->name,e2->name)<=0)
          return 1;
        else
          return 0;
      }
      int LocateElem(LinkList La,ElemType e,int type)
      {
        int i;
        LinkList p;
        p=La;
        switch (type)
          {
            case EQUAL:
      	  while(p->next)
      	    {
      	      p=p->next;
      	      if(EqualList(&p->data,&e))
      	       return 1;
      	    }
      	  return 0;
      	break;
            default:
      	break;
          }
        return 0;
      }
      
      void MergeList(LinkList La,LinkList Lb,LinkList *Lc)
      {
        LinkList pa,pb,pc;
        pa=La->next;pb=Lb->next;
        *Lc=pc=La;
        while(pa && pb)
          {
            if(Less_EqualList(&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);
      }
      
      int printlist(LinkList L)
      {
        int i;
        LinkList p;
        p=L;
        printf("name       stuno        age     score\n");
        while(p->next)
          {
            p=p->next;
            printf("%-10s %s\t%d\t%d\n",  p->data.name,  p->data.stuno,
      	  p->data.age,  p->data.score);
          }
        printf("\n");
      }
      
      int ListInsert(LinkList L,int i,ElemType e)
      {
        LinkList p,s;
        int j;
        p=L;j=0;
        while(p&&j<i-1)
          {
            p=p->next;
            ++j;
          }
        if(!p||j>i-1) return ERROR;
        s=(LinkList)malloc(sizeof(LNode));
        s->data=e;
        s->next=p->next;
        p->next=s;
        return OK;
      }/*ListInsert Before i */
      
      
      main()
      {
        struct STU e;
        LinkList La,Lb,Lc;
      
        clrscr();
      
        printf("\n\n-------------------List Demo is running...----------------\n\n");
        printf("First is InsertList function.\n");
        init(&La);
      
        strcpy(e.name,"stu1");
        strcpy(e.stuno,"100001");
        e.age=80;
        e.score=1000;
        ListInsert(La,1,e);
        strcpy(e.name,"stu3");
        strcpy(e.stuno,"100002");
        e.age=80;
        e.score=1000;
        ListInsert(La,2,e);
      
        printlist(La);
        getch();
      
        strcpy(e.name,"stu5");
        strcpy(e.stuno,"100003");
        e.age=80;
        e.score=1000;
        ListInsert(La,3,e);
      
        printlist(La);
        getch();
      
        init(&Lb);
      
        strcpy(e.name,"stu2");
        strcpy(e.stuno,"100001");
        e.age=80;
        e.score=1000;
        ListInsert(Lb,1,e);
        strcpy(e.name,"stu4");
        strcpy(e.stuno,"100002");
        e.age=80;
        e.score=1000;
        ListInsert(Lb,2,e);
      
        strcpy(e.name,"stu6");
        strcpy(e.stuno,"100001");
        e.age=80;
        e.score=1000;
        ListInsert(Lb,3,e);
      
        printlist(Lb);
        getch();
      
        MergeList(La,Lb,&Lc);
        printlist(Lc);
        getch();
      
        printf("\n\n\n\n\n\nWelcome to visit http://zmofun. !\n\n\n\n\n\n\n");
      
      }
      

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多