欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

创建带头节点的单向链表,并为各节点数据域赋 0 到 m-1 的值

程序员文章站 2024-03-21 14:18:52
...
#include <stdio.h>
#include <stdlib.h>

typedef  struct  aa
{  int  data;
   struct  aa  *next;
} NODE;

NODE *Creatlink(int  n, int  m)
{  
   NODE  *h=NULL, *p, *s;
   int  i;
   p=(NODE *)malloc(sizeof(NODE));  //为指针p分配内存
   h=p;
   p->next=NULL;  //使p指向空,即尾部
   for(i=1; i<=n; i++)  
   {  s=(NODE *)malloc(sizeof(NODE));  //为指针s分配内存
      s->data=rand()%m;  //随机产生0~m-1的整数放入数据域     
      s->next=p->next;    p->next=s;  //插入s节点       
      p=p->next;  //p指针指向下一个之指针域
   }
   return  h;  //返回链表头指针
}
void outlink(NODE  *h)
{
   NODE  *p;
   p=h->next;  //指向第一个数据域
   printf("\n\nTHE  LIST :\n\n  HEAD ");
   while(p)
   {  printf("->%d ",p->data);
      p=p->next;
   }
   printf("\n");
}
void main()
{
   NODE  *head;
   head = Creatlink(8,22);
   outlink(head);
   system("pause");   //暂停查看结果
}