从模糊标题到落地系统:实时事件聚合与响应架构设计实战
2026/10/11 8:23:02
LinkedList *list 封装版:
typedef struct { Node *head size_t size } LinkedList;/* 获取指定位置的前一个节点 LinkedList *list 链表的地址 size_t index 位置(下标,索引,从0开始) size_t unsigned(无符号整型):用来存下标,长度 index:变量名 */ Node*getprevNode(LinkedList * list,size_t index) //先定义变量保存上一个节点 Node *prevNode=list->head //没有循环之前,prevNode已经指向0节点(第一个节点) //为了循环变量与prevNode指向的节点的下标对应,循环从1开始 for(size_t i=1;i<index;i++) ( prevNode=preNode->next; ) return prevNode;函数getprevNode
删除指定位置,并返回删除的值
ele_type deleteAt(LinkedList *list,size_t index) ( if(index<0||index>=list->size) { return -1; } //list是指向LinkedList结构体的指针 list->size:取这个指针指向的结构体里面的size成员 if(index==0) { Node*deletedNode=list->head; ele_type deletedElement=deleteNode->data; list->head=deletedNode->next; free(deletedNode); } else { Node *preNode=getPrevNode(list,index); Node*deletedNode=preNode->next; preNode->next=deletedNode->next; free(deketefNode); }链表节点:Node
typedef struct Node{ ele_type data; struct Node *next; }Node; /*ele_typedef=元素类型,是结构体里,数据域data的类型 typedef int ele_type; 起的别名*/