数据结构
文章平均质量分 75
qq_26158965
这个作者很懒,什么都没留下…
展开
-
一.线性表-顺序表(动态分配)学习笔记(2)
顺序表的动态分配 元素为int类型 与静态分配的区别,主要体现在定义,初始化,销毁,自动增长 查找,赋值操作是差不多的 重载的方式来实现动态分配的 定义 typedef struct{ int *data; int length; //当前长度 int maxsize; //最大容量 }Dynamiclist; 初始化 void initDynamicList(Dynamiclist & l){ l.data=(int *)malloc(s原创 2021-04-15 11:10:16 · 109 阅读 · 0 评论 -
一.线性表-顺序表学习笔记(1)
文章目录前言线性表(Liner List)整个项目的构建顺序表(静态分配)定义初始化增删查工具typedef与struct指针与引用 前言 线性表(Liner List) 线性表:是具有相同数据类型的n(n≥0)个数据元素的有限序列,其中n为表长,当n = 0时,线性表是一个空表。 特点:一对一,除第一个唯一前驱,除最后一个有唯一后继. a1–>a2–>a3–>a4 数据结构三要素:逻辑结构,存储结构,运算. 线性表是一种逻辑结构,有两种存储结构:顺序表和链表. 基本操作 创建,销毁 增原创 2021-04-15 11:09:24 · 120 阅读 · 0 评论 -
一.单链表习题(4)
文章目录二.2王道课后题第四部分==20==代码演示结果==21==代码演示结果==22==代码演示结果==23==代码演示结果==24==代码演示结果==25==代码演示结果 二.2王道课后题 第四部分 20 我的想法:每次更新完freq的值后,遍历链表中freq的值,最大的排在最前,并且排当前的位置. 由于依次插入的特性,一定是大的在前面,只要向前找就行 找到等于x的结点后,先将他摘下来,然后依次向前查找(因为后面的次序一定小于它),一直到头结点之前,插入到频率大于它的后面(实现值相同,先访问的在前原创 2021-04-13 15:58:55 · 639 阅读 · 0 评论 -
一.单链表习题(3)
文章目录二.2王道课后题第三部分15代码演示结果16代码演示结果17代码演示结果18代码演示结果19代码演示结果 二.2王道课后题 第三部分 15 与14题的区别是,并不产生新的单链表而是存在于a中 问题:a中是只存交集元素,还是存额外的b中的. 我选1 注意释放不是公共的结点 我选用头插法,可以不设置尾指针 代码 void combineRepeatInA(LinkList &a,LinkList &b){ LNode *p=a->next; LNode *q=原创 2021-04-13 15:58:13 · 406 阅读 · 0 评论 -
一.单链表习题(2)
文章目录二.2王道课后题第二部分==8==代码演示结果9代码演示结果==10==代码演示结果11代码演示结果12代码演示结果==13==代码演示结果14代码演示结果 二.2王道课后题 第二部分 8 常规思路是暴力解法时间复杂度o(len1*len2) 我的代码和书上代码不一样,但是理念一样 假如两个链表有公共结点那么,一定在某个结点开始,一直到最后一个结点,都是公共的. 也就是从最后一个结点开始,往前n个结点是相同的. 只要先知道两个链表的长度,然后在长度相同的时候同时遍历,next相同就找到了. 时间原创 2021-04-13 15:56:56 · 322 阅读 · 0 评论 -
一.单链表习题(1)
文章目录二.2王道课后题第一部分==1==代码(1)推荐演示结果代码(2)==2==代码演示结果代码(2)演示结果==3==代码演示结果==4==代码演示结果==5==代码(1)代码(2)演示结果==6==代码演示结果7代码演示结果代码演示结果 二.2王道课后题 第一部分 1 相当经典的一道题 一般来说,写递归函数,第一句是递归出口 引用是给变量取别名,实际是同一个变量 q=p 是两个变量,指向同一个位置而已. 断链的问题–引用可以解决,对于作题来说,可以每次都加上引用 一般来说,没有结点的增删,可原创 2021-04-13 15:54:08 · 396 阅读 · 0 评论