单链表的整表创建
顺序存储结构的创建,其实就是一个数组的初始化,即声明一个类型和大小的数组并赋值的过程。
所以,创建单链表的过程是动态生成链表的过程。即从“空表”的初始状态起,依次建立各元素结点。并逐个插入链表。
单链表整表创建的算法思路:
-
声明一结点p和计数器变量i;
-
初始化一空链表L;
-
让L的头结点的指针指向NULL,即建立一个带头结点的单链表;
-
循环:
-
生成一新结点赋值给p;
-
随机生成一数字赋值给p的数据域p->data;
-
将p插入到头节点与新节点之间。
头插法:
/*随机产生n个元素的值,建立带表头结点的单链线性表L(头插法)*/
void CreateListHead(LinkList *L, int n)
{
LinkListp;
inti;
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;
p->next= (*L).next;
L->next= p;
}
}
-