链表1: 静态单链表
链表1: 静态单链表
单链表的结构
链表包含了数据域与指针域,
数据域存储数据,
指针域存储下一个结点的地址
链表的特点
链表的优势在于数据的删改, 在链表中查询第$i$个元素需要从第一个结点开始遍历链表,, 因此在数据的顺序读取中链表的优势不如数组.
链表的插入操作
设newNode为新节点, curNode为将插入的位置的结点, preNode为curNode的前驱
链表在进行插入时
1.将newNode的后继指向curNode
2.将preNode的后继指向newNode
链表的删除操作
设Node2为需要删除结点, Node1为Node2的前驱, Node3为Node2的后继
链表在进行删除时
1.将Node1的后继指向Node2后继的后继
2.将Node2后继指向NULL
3.释放Node2的内存空间
定义静态单链表的数据结构
// 静态链表创建 typedef struct LinkNode{ int data; //链表数据域 struct LinkNode *next; //链表指针域 }LinkNode;
测试
int main(){ // 链表在前进到下一个元素时, 不能用p++, ++跳跃四个字节 LinkNode node1 = {10,NULL}; LinkNode node2 = {20,NULL}; LinkNode node3 = {30,NULL}; LinkNode node4 = {40,NULL}; //在结点之间建立连接 node1.next = &node2; node2.next = &node3; node3.next = &node4; LinkNode *p = &node1; // 定义指针p指向当前节点 // 遍历链表 while(p){ //不为空时遍历链表 // cout << (*p).data << endl; cout << p->data << endl; p = p->next; } system("pause"); return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App