链表,是线性表的链式存储结构。
与数组不同,它占用的存储单元不一定连续,且链表的长度不固定,这一特点使它在节点的插入和删除操作这方面【可劲儿作妖】(划)能非常方便地实现。
链表的每个元素称为一个节点。节点包含两个部分,第一部分用于存储元素本身的数据信息,它可以有多个成员数据;第二部分是一个结构体指针,用于存储其直接后继的节点信息,经常用next表示。当前节点为末节点时,next的值设为空指针。
①给结构体取一个好听的名字,链表将来有哪些美丽的变量都准备好。
Typedef struct node1{
Int value;
Struct node1 *next;
}Node;
②全链表第一的头指针竟然写在了第二条的位置。
Node *head = (Node*)malloc(sizeof(Node));
③新来的,房子造了没啊,美丽跟你一起去了没啊,保险柜钥匙埋起来了没啊。
Node *p = (Node*)malloc(sizeof(Node));
p->value = number;
P->next = NULL;
④众里寻他千百度。此时last指向原来的链表的最后一个。
Node* last = head;
while( last->next != NULL ){
last = last->next;
}
⑤原地合体吧!
last->next = p;
这样,就完成了链表的创建,为它加上循环,说不定就能跑了呢
点赞 (25)
回复