摘要: (八)双链表算法之删除节点 算法分析代码实现 算法分析 和单链表的删除一样,双链表的删除节点也是分为两步:找到要删除的节点;删除找到的节点。如果删除的节点是尾节点 遍历找到尾部节点; 断开如图两处连接; 当前节点的前一节点指向NULL; 释放当前节点。如果删除的节点不是尾部节点 遍历找到要删除的节点 阅读全文
posted @ 2019-01-10 21:52 天星小苑 阅读(1463) 评论(0) 推荐(0) 编辑
摘要: (七)双链表算法之遍历 双链表正向遍历双链表逆向遍历 双链表正向遍历 正向遍历和单链表相同,详情见单链表。 1/* 2 *pH : 头节点 3 *return 返回尾部节点地址 4 */ 5struct node * list_for_each(struct *pH) 6{ 7 struct nod 阅读全文
posted @ 2019-01-10 21:03 天星小苑 阅读(618) 评论(0) 推荐(0) 编辑
摘要: (六)双链表的结构和插入节点 双链表结构双链表算法之插入节点(尾部插入)双链表算法之插入节点(头部插入) 双链表结构 双链表并不是有两个链表,而是有两个遍历方向的链表,因此我们说的双链表其实是双向链表的简称。 单链表节点 = 有效数据 + 指针(指向下一个节点) 双链表节点 = 有效数据 + 两个指 阅读全文
posted @ 2019-01-10 20:36 天星小苑 阅读(726) 评论(0) 推荐(0) 编辑
摘要: (五)单链接表算法之逆序 思路分析代码实现 思路分析 采用遍历+头插入。 遍历链表; 保存当前链表的后一个节点指针(pBack); 头插入之尾部链接; 头插入之头部链接 移动到下一节点p = pBack; 代码实现 1void reverse_list(struct node *pH) 2{ 3 s 阅读全文
posted @ 2019-01-10 13:57 天星小苑 阅读(282) 评论(0) 推荐(0) 编辑
摘要: (四)单链接表算法之删除节点 思路分析代码实现 思路分析 第一种情况:删除的节点不是尾节点 删除的节点不是尾节点 找到需要删除的某一节点; 保存删除节点的前一节点指针pPrev; pPrev-> pNext = p ->pNext; 释放当前节点内存;第二种情况:删除的节点是尾节点 删除尾节点 移动 阅读全文
posted @ 2019-01-10 13:07 天星小苑 阅读(347) 评论(0) 推荐(0) 编辑
摘要: (三)单链接表算法从头部插入节点及遍历节点 链表头部插入思路解析遍历节点 链表头部插入思路解析 头插入节点的两个重要步骤如下: 新节点的pNext指向第一个节点的首地址,即新节点和原来的第一个节点相连。 头节点的pNext指向新节点的首地址,即头节点和新节点相连。在这里插入图片描述 1/*2 * p 阅读全文
posted @ 2019-01-09 16:32 天星小苑 阅读(298) 评论(0) 推荐(0) 编辑
摘要: CSAPP:第九章 虚拟内存 关键点:虚拟内存、物理内存 9.1 物理地址和虚拟地址9.2 地址空间9.3 虚拟内存作为缓存的公工具 9.1 物理地址和虚拟地址 计算机的主存被组织成一个由M个连续的字节大小的单元组成的数组。每个字节都有一个唯一的物理地址(PA)。第一个地址为0,接下来为1,再接下来 阅读全文
posted @ 2019-01-09 16:31 天星小苑 阅读(314) 评论(0) 推荐(0) 编辑
摘要: 嵌入式面试题(一) 1.静态变量与局部静态变量的区别 存储类别:非零的全局变量,非零的局部静态变量存储在数据段;零初始化的全局变量或者局部静态变量存储在bss段 作用域:静态变量属于内链接,只在当前模块内可以被访问。 生命周期:bss段和数据段的生命周期是永久的,从程序开始到程序结束。扩展 变量类型 阅读全文
posted @ 2019-01-06 17:59 天星小苑 阅读(250) 评论(0) 推荐(0) 编辑
摘要: (二)单链接表的实现之从尾部插入节点 从尾部插入节点构建一个简单的列表什么是头节点 从尾部插入节点 从尾部插入节点 如上图所示,只要将创建的节点的pNext指针指向下一节点地址即可:pHeader->pNext = New; 从尾部插入节点分成两个步骤: 找到链表的最后一个节点; 将新的节点和原来的 阅读全文
posted @ 2019-01-02 20:13 天星小苑 阅读(637) 评论(0) 推荐(0) 编辑
摘要: (一)单链接表实现及构建第一个节点 单链表结构单链表的节点构成使用堆内存创建一个节点链表的头指针构建第一个简单的链表 单链表结构 单链表的形象理解如下所示: 单链表结构 单链表的创建步骤: 创建空的单链表,比如可以定义一个create_node()函数来创建第一个节点。 操作单链表(增添、删除、查找 阅读全文
posted @ 2019-01-02 17:02 天星小苑 阅读(369) 评论(0) 推荐(0) 编辑