![](https://img-blog.csdnimg.cn/797c4218c51449ffab3ae5866dd581cb.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
北邮22信通——数据结构
文章平均质量分 87
北邮22信通一枚~
跟随课程进度每周更新数据结构与算法的代码和文章
持续关注作者 解锁更多邮苑信通专属代码~
青山入墨雨如画
小舟何来觅帝家
展开
-
北邮22年信通机考题目
北邮22年机考题目原创 2022-12-24 10:58:18 · 829 阅读 · 2 评论 -
北邮22信通:(1)你是不是在looking for……那串代码?
22北邮信通 数据结构与算法 第二章线性表 通信录的实现原创 2023-03-02 23:36:10 · 508 阅读 · 2 评论 -
北邮22信通:(2)第三章单链表
北邮22信通数据结构与算法 第三章单链表的实现 通信录 模拟 案例类模板下的单链表1.1书上干净完整代码(无增改、适合自己动手实验)1.2对书上代码的完善和对一些问题的验证和解释代码1.补全一个函数:2.this指针:3.关于printlist函数的一点说明:(增改后代码第行)4.getlength函数最后一步为什么是--cnt:5.增改后代码:6.增改后代码效果图:7.增改后代码运行效果:原创 2023-03-10 01:18:48 · 814 阅读 · 0 评论 -
北邮22信通:(3)举例:单链表实现成绩管理系统
北邮22信通:你是不是在looking for……那串代码?(3)举例:单链表实现成绩管理系统函数单析:1.linklist(temp a[],int n) 构造函数2. 析构函数3.获得成绩最高的同学信息的函数4.获得成绩最低同学的函数(其实和3大同小异)5.同时获得成绩最高 和成绩最低的同学的信息的函数6.求平均值函数7.打印链表函数8.通过学生在链表中的顺序查询学生信息的函数9.返回值为数据域数据类型(temp)的查询函数10 .判断外来信息是否在链表原创 2023-03-12 18:37:04 · 533 阅读 · 0 评论 -
北邮22信通:(4)实验1 题目一 :线性表的实现
要求:实现线性表的基本功能构造:使用头插法、尾插法两种方法;插入:要求建立的链表按照关键字从小到大有序(静态链表不要求该项)要求:实现线性表的基本功能删除 查找 获取电表长度 销毁 其他:可自行定义;编写测试main()函数测试线性表的正确性。原创 2023-03-23 16:19:16 · 779 阅读 · 0 评论 -
北邮22信通:(5)实验1 题目二:有序链表合并
北邮22信通:(5)实验1 题目二:有序链表合并顺序从小到大或者从大到小都可以;考虑如下情况:(假如按照从小到大)List.data>list2.data,new.data=?List.length!=list2.length ,如何合并?处理list1.next==NULL;处理list2.next==NULL;原创 2023-03-23 21:20:08 · 471 阅读 · 0 评论 -
北邮22信通:(6)实验1 题目三 :通讯录管理
北邮22信通:(4)实验1 题目三 :通讯录管理利用线性表实现一个通讯里管理系统,通讯录的数据格式如下:Struct datatype{ int ID;char name[10];char ch;char phone[13];char addr[31];}要求:实现通讯录的建立,增加,删除,修改,查询等功能;能够实现简单的菜单交互,可以根据用户输入的命令选择不同的操作;能够保存每次更新的数据;编写main()函数测试线性表的正确性;原创 2023-03-24 13:43:51 · 907 阅读 · 0 评论 -
北邮22信通:(7)实验1 题目四:一元多项式(节省内存版)
北邮22信通:(7)实验1 题目四:一元多项式利用线性表实现一个一元多项式,可以用链表实现,也可以用顺序表实现。要求:能够实现一元多项式的输入和输出能够实现一元多项式的相加;能够实现一元多项式的相减;能够计算一元多项式在x处的值;能够计算一元多项式的导数;能够进行一元多项式的相乘;编写测试main()函数测试线性表的正确性;原创 2023-03-25 16:43:34 · 602 阅读 · 0 评论 -
北邮22信通:(8)实验1 题目五:大整数加减法(搬运官方代码)
利用链表实现大整数加减法操作;32位极其直接操作的数据最大为32bit,若超过32bit,则需要单独设计算法。在这里,可以用链表的每个节点存储大整数的每一位的十进制数字,则可以进行大整数的算术运算,该实验仅实现加减法操作。要求:随机产生2个1~50位的字符串,并存储到新的链表中;打印运算结果。考虑链表结构的设计,是否有更节省空间的数据结构。原创 2023-03-26 12:42:12 · 433 阅读 · 0 评论 -
北邮22信通:(9)实验1 题目六:模拟内存管理(搬运官方代码)
动态内存管理是操作系统的基本功能之一,用于相应用户程序对内存的申请和释放要求;初始化时,系统只有一块连续的空闲内存;当不断有用户申请内存时,系统会根据魔种策略选择一块合适的连续内存供用户程序使用;当用户程序释放内存时,系统将其回收,供以后重新分配,什邡市需要计算该内存块的左右是否也为空闲块,若是,则需要合并变成更大的空闲块;试设计用于模拟动态内存管理的内存池类。原创 2023-03-26 12:58:22 · 483 阅读 · 4 评论 -
北邮22信通:(10)第三章 3.2栈的实现
北邮22信通:(10)第三章 3.2栈的实现原创 2023-03-30 14:55:02 · 380 阅读 · 0 评论 -
北邮22信通:(11)第三章 3.3队列的实现
北邮22信通:(11)第三章 3.3队列的实现 循环队列:链队列:原创 2023-04-05 13:08:16 · 538 阅读 · 0 评论 -
北邮22信通:(12)第三章 3.4 串的实现 BF算法
北邮22信通:(12)3.4 串的实现 BF算法 1.本代码基于书上第二章线性表和4.3节串的实现结合书写。2.本篇文章分为两个部分,分别为用顺序表实现串和用单链表实现串;书上提供的代码是用顺序表实现串,小编自己给出了用单链表实现串的方法;3.本代码对书上代码做了一个小小修改,template中只传入了一个参数class temp,更加精简。4.顺序表VS单链表:顺序表的实现函数写起来比较精简,但是缺点是控制条件需要考虑仔细;单链表的实现函数控制条件相对统一易于思考,但是写起来比较繁琐,并原创 2023-04-18 13:18:17 · 205 阅读 · 1 评论 -
北邮22信通:(13)第三章 3.4 串的实现 KMP算法
北邮22信通:(13)第三章 3.4 串的实现 KMP算法1.本代码结合书上第二章线性表和4.3.3KMP算法结合书写。2.加快匹配速度的根本原因:前缀子串无需匹配。原创 2023-04-18 16:19:40 · 387 阅读 · 0 评论 -
北邮22信通:利用BF算法解决实际问题:题目实战(超详解)设计函数 char *locatesubstr(char *str1,char *str2)
北邮22信通:利用KMP算法解决实际问题:题目实战(超详解)设计函数 char *locatesubstr(char *str1,char *str2)设计函数 char *locatesubstr(char *str1,char *str2),查找str2指向的字符串在str1指向的字符串中首次出现的位置,返回指向该位置的指针。若str2指向的字符串不包含在str1指向的字符串中,则返回空指针NULL。注意这里必须使用指针而不是数组下标来访问字符串。原创 2023-05-25 11:58:17 · 709 阅读 · 0 评论 -
北邮22信通:二叉树的遍历书上代码完整版
北邮22信通(12):二叉树的遍历书上代码完整版 用二叉链表作为存储结构的二叉树。本代码完全遵从书上代码。原创 2023-04-16 17:50:01 · 464 阅读 · 0 评论 -
北邮22信通:二叉树层序遍历的非递归算法:A Story Between Two Templates
队列的层序遍历:在进行层序遍历时,对某一层节点访问完毕之后,在按照他们的访问顺序北邮22信通:二叉树层序遍历的两种方法&&首发模板类交互 一次对各个节点的左孩子和右孩子顺序访问,这样一层一层的进行,先访问的节点其左孩子也要先访问,这与队列的特性比较吻合。因此,我们可以利用队列来实现二叉树的层序遍历。原创 2023-04-24 09:21:44 · 262 阅读 · 0 评论 -
北邮22信通:二叉树各种遍历所有常见算法汇总
北邮22信通:二叉树各种遍历所有常见算法汇总1.二叉树的前序遍历1.1递归算法1.2非递归算法1.2.1模板类实现栈1.2.2模板类实现栈的优化算法1.2.3 STL栈2.二叉树的中序遍历2.1递归算法2.2非递归算法2.2.1模板类实现栈2.2.2模板类实现栈的优化算法2.2.3 STL栈3.二叉树的后序遍历3.1递归算法3.2非递归算法3.3说明4.层序遍历5.模板类实现栈完整代码5.1代码部分5.2运行结果原创 2023-04-25 13:01:38 · 598 阅读 · 0 评论 -
北邮22信通:二叉树 书上重要知识点补充 例4.3 统计结点总数 深度和叶子结点数
北邮22信通(13)二叉树 统计结点总数 深度和叶子结点数原创 2023-04-16 17:52:29 · 531 阅读 · 2 评论 -
北邮22信通:二叉树显示路径的两种方法 递归函数保存现场返回现场的实例
北邮22信通:二叉树显示路径的两种方法 递归函数保存现场返回现场的实例,要想实现二叉树的路径显示,我们要按照先后顺序做这样几件事:1.判断是否能够找到路径;2.如果能找到路径,则将路径存储起来,如果不能找到路径,则返回查询失败的信息;3.将路径按照一定的方法打印出来;原创 2023-05-25 12:02:44 · 936 阅读 · 0 评论 -
北邮22信通:复习补充:双向链表的实现
北邮22信通:复习补充:双向链表的实现原创 2023-05-30 20:59:58 · 608 阅读 · 0 评论 -
北邮22信通:第五章 邻接表图的广度遍历和深度遍历
北邮22信通:第五章 邻接表图的广度遍历和深度遍历 1.本篇文章使用邻接表的存储结构实现图,将分别介绍广度优先遍历和深度优先遍历两种图的遍历方法原创 2023-08-02 20:31:07 · 308 阅读 · 0 评论 -
北邮22信通:第五章 邻接矩阵图的深度优先遍历和广度优先遍历
北邮22信通:第五章 邻接矩阵图的深度优先遍历和广度优先遍历 同邻接表图一样,我们需要将一个图的所有信息数字化。除了邻接表这种存储方式外,我们还可以使用邻接矩阵。首先需要一个一维数组(vertex)储存所有结点,之后还需要一个二维数组(arc)储存结点和结点之间的连通情况(如果是带权图就储存权值)。 这个二维数组存储的元素个数是这个一维数组长度的平方倍,显然,二维数组每个角度的分坐标(横纵坐标),任一行(列)分别都应该代表从第一个结点到最后一个结点的下标,示意图如下。本篇文章用于原创 2023-08-06 19:15:39 · 319 阅读 · 0 评论 -
北邮22信通:第五章 图 最短路径 Dijkstra算法
北邮22信通:第五章 图 最短路径 Dijkstra算法 (1)找出从源点能够直接到达的顶点的所有路径,并从中选出一条最短路径;(2)以这条已选出的最短路径作为转发路径/*批注:先取最少量事件*/,找出经过这条路径转发后到达其他顶点的路径,从中选出一条最短的路径;需要注意的是,如果这条路径转发后到达目的结点比直接从源点到达目的结点的结点路径长,就不用转发了;/*批注:看加入的事件能否优化原先的结果,有优化则优化,不能优化保持原样;*//*又批注:这里需要有一个函数,能够找出这条最短路径。*/原创 2023-08-05 23:23:14 · 211 阅读 · 0 评论 -
北邮22信通:第六章查找:BST树表(代码超详细逐步图解)
北邮22信通:第六章查找:BST树表 BST树表的一大特点,就是任取一个节点,其左子树中任意一个节点的权值都小于这个结点,右子树中任意一个节点的权值都大于这个节点。根据这种特性,要想实现构造函数的书写,我们就必须考虑这样一个问题:每给出一个权值,我们要将这个权值插入到树表的哪个位置上。所以首先讲解insert_bst函数:原创 2023-06-10 14:05:48 · 288 阅读 · 0 评论