/* 頭插法創建單鏈表示例 */指針
void CreateListHead(LinkList *L, int n)
{
LinkList p;
int i;變量
srand(time(0)); // 初始化隨機數種子隨機數
*L = (LinkList)malloc(sizeof(Node));
(*L)->next = NULL;List
for( i=0; i < n; i++ )
{
p = (LinkList)malloc(sizeof(Node)); // 生成新結點
p->data = rand()%100+1;
p->next = (*L)->next;
(*L)->next = p;
}
}循環
/* 尾插法創建單鏈表演示 */數據類型
void CreateListTail(LinkList *L, int n)
{
LinkList p, r;
int i;im
srand(time(0));
*L = (LinkList)malloc(sizeof(Node));
r = *L;鏈表
for( i=0; i < n; i++ )
{
p = (Node *)malloc(sizeof(Node));
p->data = rand()%100+1;
r->next = p;
r = p; // 備註:初學者可能很難理解這句,重點解釋。
}next
r->next = NULL;
}數據
最後兩句其實就是多增長了一個Node數據類型的變量,用它不停指向最後一個節點。而後在下一次循環中r又幫忙把最後一個節點的Next指針指向新的節點p