⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ch11_15.c

📁 C语言程序设计上机指导与练习 冶金工业出版社 刘怀亮
💻 C
字号:
/*CH11_15*/
/*将以上建立链表,删除结点,插入结点的函数组织在一起,再建一个输出全部结点的函数,然后用main函数调用它们*/
#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<n;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);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -