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

📄 linklist.c

📁 有关数据结构的一些例子。用C语言编写的。非常有价值的程序。对初学者有指导借鉴意义。
💻 C
字号:
#define NULL 0
#include <stdio.h>
#include <string.h>
//#include <alloc.h>
struct list
{ int no;                  /*存放原序号*/
  char data[10];           /*存放名字*/
  int val;                 /*存放链表值*/
  struct list *next;
};

struct list *createlist(int n)
{ 
  struct list *head,*p,*q,*s;
  int i;
  head=malloc(sizeof(struct list));
  q=head;
  for(i=1;i<=n;i++)
  { s=malloc(sizeof(struct list));    /*尾插法*/
    printf("第%d个名字:",i);
    scanf("%s",s->data);
    s->no=i;
    q->next=s;
    q=s;
  }
  q->next=NULL;
  p=head;
  head=head->next;
  free(p);
  return(head);
}

struct list *sort(head)
struct list *head;
{ 
  struct list *head1,*p,*q,*s,*r;
  head1=NULL;
  p=head;
  while(p!=NULL)
  { s=malloc(sizeof(struct list));
    strcpy(s->data,p->data);
    s->no=p->no;
    s->next=NULL;
    if(head1==NULL || strcmp(s->data,head1->data)<0)
    { s->next=head1;
      head1=s;
    }
    else
    { q=head1;  r=q;
      while(r!=NULL && strcmp(s->data,r->data)>0)
        if(strcmp(s->data,r->data)>0)
        { q=r;
          r=r->next;
        }
        if(r==NULL)
        { q->next=s;
          s->next=NULL;
        }
        else
        { s->next=r;
          q->next=s;
        }
    }
    p=p->next;
  }
  return(head1);
}

struct list *setval(head)
struct list *head;
{ 
   struct list *p;
   p=head;
   while(p->next!=NULL)
   { p->val=p->next->no;
     p=p->next;
   }
   p->val=NULL;
  return(head);
}

main()
{ 
   struct list *head,*p;
   int n,i;
   printf("名字个数:");
   scanf("%d",&n);
   head=createlist(n);
   head=sort(head);
   head=setval(head);
   printf("实现功能1的结果:\n");
   for(i=1;i<=n;i++)
   { p=head;
     while(p->no!=i)
       p=p->next;
     printf("%5d%12s%5d\n",p->no,p->data,p->val);
   }
   printf("\n实现功能2的结果:\n");
   p=head;
   while(p!=NULL);
   { printf("%10s\n",p->data);
     p=p->next;
   }
}  
  
  


⌨️ 快捷键说明

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