#include <stdio.h>
typedef struct {
int val;
//指向下一个节点
struct node *p_next;
}node;
int main(){
node node1 = {10}, node2 = {20},node3 = {30};
node head = {0},tail = {0};
node *p_tmp = NULL;
head.p_next = &node1;
node1.p_next = &node2;
node2.p_next = &node3;
node3.p_next = &tail;
node node4 = {25};
//插入node4节点
for (p_tmp = &head;p_tmp != &tail;p_tmp = p_tmp->p_next)
{
node *p_first = p_tmp;
node *p_mid = p_first->p_next;
node *p_last = p_mid->p_next;
if(p_mid == &tail || p_mid->val > node4.val){
p_first->p_next = &node4;
node4.p_next = p_mid;
break;
}
}
//删除节点
for (p_tmp = &head;p_tmp != &tail;p_tmp = p_tmp->p_next){
node *p_first = p_tmp;
node *p_mid = p_first->p_next;
node *p_last = p_mid->p_next;
if(p_mid->val == 20)
{
p_first->p_next = p_last;
break;
}
}
//遍历节点
for (p_tmp = &head;p_tmp != &tail;p_tmp = p_tmp->p_next)
{
node *p_first = p_tmp;
node *p_mid = p_first->p_next;
node *p_last = p_mid->p_next;
if(p_mid != &tail){
printf("%d",p_mid->val);
}
}
printf("\n");
return 0;
}