先看单向链表,
构建一个链表总共分两步:
1、首先定义一下链表节点的结构体,这就是最简单的链表,包含一个值和一个指向下一个节点的指针
结构体大小(64位):8 + 8 =16字节
typedef struct _listnode{
//int key;
int val;
struct listnode * next;
}listnode;
2、节点定义出来了,但是现在还是空空如也,总得给定个链表的长度吧,也得有个链表头吧
//定义链表大小
int numsize = 10, i;
//定义链表头并初始化
listnode *head = (listnode *)malloc(sizeof(listnode));
head->next = NULL;
//定义一个指针去连接各个节点
listnode *tmp;
tmp = head;
//初始化填充链表
for (i = 0; i < numsize; i++)
{
//创建一个链表节点
listnode *newnode = (listnode *)malloc(sizeof(listnode));
newnode->next = NULL;
//连接
tmp->next = newnode;
tmp = newnode;
//赋值
newnode->val = (i+1);
}
打印一个链表:
//定义一个指针去打印各个节点
listnode *prin