亚洲欧洲国产欧美一区精品,激情五月亚洲色五月,最新精品国偷自产在线婷婷,欧美婷婷丁香五月天社区

      考試首頁 | 考試用書 | 培訓課程 | 模擬考場 | 考試論壇  
      全國  |             |          |          |          |          |         
        當前位置:計算機等級 > 二級考試 > C語言程序設計 > C語言輔導 > 文章內(nèi)容
        

      全國計算機等級考試二級C語言入門教程(111)

      中華IT學院   【 】  [ 2016年5月25日 ]

      本函數(shù)有兩個形參均為指針變量,head指向鏈表,pi 指向被插結(jié)點。函數(shù)中首先判斷鏈表是否為空,為空則使
      head指向被插結(jié)點。表若不空,則用 while語句循環(huán)查找插入位置。找到之后再判斷是否在第一結(jié)點之前插入,若是
      則使head 指向被插結(jié)點被插結(jié)點指針域指向原第一結(jié)點,否則在其它位置插入, 若插入的結(jié)點大于表中所有結(jié)點,
      則在表末插入。本函數(shù)返回一個指針,是鏈表的頭指針。 當插入的位置在第一個結(jié)點之前時,插入的新結(jié)點成為鏈
      表的第一個結(jié)點,因此 head的值也有了改變, 故需要把這個指針返回主調(diào)函數(shù)。
      [例 7.14]將以上建立鏈表,刪除結(jié)點,插入結(jié)點的函數(shù)組織在一起,再建一個輸出全部結(jié)點的函數(shù),然后用 main函
      數(shù)調(diào)用它們。

      #define NULL 0
      #define TYPE struct stu
      #define LEN sizeof(struct stu)
      struct stu
      {
      int num;
      int age;
      struct stu *next;
      };
      TYPE * creat(int n)
      {
      struct stu *head,*pf,*pb;
      int i;



      for(i=0;i{
      pb=(TYPE *)malloc(LEN);
      printf("input Number and Age\n");
      scanf("%d%d",&pb->num,&pb->age);
      if(i==0)
      pf=head=pb;
      else pf->next=pb;
      pb->next=NULL;
      pf=pb;
      }
      return(head);
      }
      TYPE * delete(TYPE * head,int num)
      {
      TYPE *pf,*pb;
      if(head==NULL)
      { printf("\nempty list!\n");
      goto end;}
      pb=head;
      while (pb->num!=num && pb->next!=NULL)
      {pf=pb;pb=pb->next;}
      if(pb->num==num)
      { if(pb==head) head=pb->next;
      else pf->next=pb->next;
      printf("The node is deleted\n"); }
      else
      free(pb);
      printf("The node not been found!\n");
      end:
      return head;
      }
      TYPE * insert(TYPE * head,TYPE * pi)
      {
      TYPE *pb ,*pf;
      pb=head;
      if(head==NULL)
      { head=pi;
      pi->next=NULL; }
      else
      {
      while((pi->num>pb->num)&&(pb->next!=NULL))
      { pf=pb;
      pb=pb->next; }
      if(pi->num<=pb->num)
      { if(head==pb) head=pi;
      else pf->next=pi;
      pi->next=pb; }
      else
      { pb->next=pi;
      pi->next=NULL; }
      }
      return head;
      }
      void print(TYPE * head)
      {
      printf("Number\t\tAge\n");
      while(head!=NULL)



      {
      printf("%d\t\t%d\n",head->num,head->age);
      head=head->next;
      }
      }
      main()
      {
      TYPE * head,*pnum;
      int n,num;
      printf("input number of node: ");
      scanf("%d",&n);
      head=creat(n);
      print(head);
      printf("Input the deleted number: ");
      scanf("%d",&num);
      head=delete(head,num);
      print(head);
      printf("Input the inserted number and age: ");
      pnum=(TYPE *)malloc(LEN);
      scanf("%d%d",&pnum->num,&pnum->age);
      head=insert(head,pnum);
      print(head);
      }

      分享到:
      本文糾錯】【告訴好友】【打印此文】【返回頂部
      將考試網(wǎng)添加到收藏夾 | 每次上網(wǎng)自動訪問考試網(wǎng) | 復制本頁地址,傳給QQ/MSN上的好友 | 申請鏈接 | 意見留言 TOP
      關于本站  網(wǎng)站聲明  廣告服務  聯(lián)系方式  站內(nèi)導航  考試論壇
      Copyright © 2006-2017 中華考試網(wǎng)(Examw.com) All Rights Reserved  營業(yè)執(zhí)照