最简单的链表
#include<stdio.h>
typedef struct node {
int val;
struct node * p_next; // 下一个节点依然是一个 node 类型的节点
} node_t;
int main()
{
node_t node1 ={10},node2 ={20},node3={30};
node1.p_next = &node2;
node2.p_next = &node3;
return 0;
}
晚上链表的起初操作的代码结构
#include<stdio.h>
typedef struct node {
int val;
struct node * p_next;
} node_t;
int main()
{
node_t node1 ={10},node2 ={20},node3={30} ,head = {0}, tail = {0}; // 声明一个头节点和尾节点,是每一个节点的结构保持一致
head.p_next = &node1;
node1.p_next = &node2;
node2.p_next = &node3;
node3.p_next = &tail;
node_t * p_tmp = NULL, *p_first = NULL, *p_mid = NULL,*p_last = NULL; // 每一个操作的链表都需要申请三个指针,p_first p_mid p_last 这三个指针链接在一起,其中p_mid 表示要操作的指针
for (p_tmp = &head;p_tmp != &tail ;p_tmp = p_tmp->p_next)
{
p_first = p_tmp;
p_mid = p_tmp->p_next;
p_last = p_mid->p_next;
if(p_mid != &tail)
{
printf("%d\n",p_mid->val);
}
}
return 0;
}