【c语言】链式数据结构实现
#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; }