随机产生N个元素的值,建立带表头结点的单链表(头插法)
————C语言实现
#include<stdio.h>
#include<stdlib.h>
typedef struct Node{
int data;
struct Node *next;
}Node,*LinkList;
void CreateList_head(LinkList *L,int n)
{
LinkList p;
int i;
srand(time(0)); //初始化随机数种子
*L = (LinkList)malloc(sizeof(Node));
(*L)->next = NULL; //先建立一个带头结点的单链表
for(i=0;i<n;i++)
{
p = (LinkList)malloc(sizeof(Node)); //生成新结点
p->data = rand()%100+1; //随机生成100以内的数字
p->next = (*L)->next;
(*L)->next = p; //插入到表头
}
}
void printList(LinkList *L)
{
LinkList q;
q=(*L)->next;
while(q!=NULL)
{
printf("%d ",q->data);
q=q->next;
}
}
int main()
{
int n;
LinkList L;
scanf("%d",&n);
CreateList_head(&L,n);
printList(&L);
return 0;
}