链表

头指针与头结点的异同

头指针为链表的必要元素,指向第一个结点(若有头结点则指向头结点)

头结点为链表的非必要元素(数据域一般存放链表长度)

头插法

p->next = (*L)->next;

(*L)->next = p;

尾插法

void CreateListTill(LinkList *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 = (LinkList)malloc(sizeof(Node));

p->data = rand() % 100 + 1;

r->next = p;

r = p;

}

r->next = NULL;

}

L指的是整个单链表,而r是指向尾结点的变量

循环结束后应将指针置为NULL以便确认尾部

Status ClearList(LinkList *L)

{

LinkList p, q;

p = (*L)->next;//p指向第一个结点

while (p)

{

q = p->next;

free(p);

p = q;

}

(*L)->next = NULL;

return OK;

}

你可能感兴趣的:(链表)