
每次将待插入的结点链在单链表的最后一个结点的后面
void creatlist(LinkList *LDatatype a[10])
{ L = (LinkList *) malloc (sizeof(struct node))
L->next = NULL //生成头结点
r = L //r为指向表尾的指针
for(i = 0i<=9i++)
{ p = (LinkList *) malloc (sizeof(struct node))
p->data = a[i] //生成新的结点
p->next = NULL
r->next = p //将新生成的结点插在表尾
r = p //将表尾指针指向新插入的结点
}
}
单链表的创建一般主流分为两种创建方式:头插法和尾插法。
1)创建头节点,维护head指针(引用)来指向头节点;
2)newNode表示待插入节点,维护newnode指向新节点;
3)
case1:当链表为空时,即首次插入新节点,将head.next指向新插入节点,即 head.next = newNode
case2:如果不是首次插入新节点,将新节点插入到head和head.next指向节点之间,即
newnode.next = head.next
head.next = newNode
1)创建头节点,维护head指针(引用)来指向头节点;
2)newNode表示待插入节点,维护tail指针,指示链表尾节点,当tail.next == null时,表示tail指向尾节点;
3)
case1:当链表为空时,即首次插入新节点,将head.next指向新插入节点,即 head.next = newNode
case2:如果不是首次插入新节点,需要遍历整个链表定位到尾节点,并将新节点插入到尾节点之后,即
tail.next = newNode
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)