整表创建----头插法
void CreateList_Head(List *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 CreateList_Tail(List *L,int n)
{
LinkList p,r;
int i;
srand(time(0)); /*初始化随机数种子*/
*L = (LinkList)malloc(sizeof(Node));
r = *L; /*r为指向尾部的结点*/
for(i=0;i<n;i++)
{
p = (Node *)malloc(sizeof(Node)); /*生成新节点*/
p->data = rand()%100+1; /*随机生成100以内数字*/
r->next = p; /*将表尾终端节点的指针指向新节点*/
r = p; /*将当前的新结点定义为表尾终端节点*/
}
r->next = NULL; /*表示当前链表结束*/
}
整表删除
void ClearList(List *L)
{
LinkList p,q;
p = (*L)->next; /*p指向第一个节点*/
whi(p) /*没到表尾*/
{
q = p->next;
free(p);
p = q;
}
(*L)->next = NULL; /*头结点指针域为空*/
return OK;
}