摘要: 查找 一、查找基本概念 查找是什么 根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素或记录。有主关键字和次关键字之分。 在哪里查找 在查找表查找,查找表:是由同一类型的数据元素(或记录)构成的集合。由于“集合”中的数据元素之间存在着松散的关系,因此查找表是一种应用灵活方便的结构。 查 阅读全文
posted @ 2021-08-26 11:46 Pangenda 阅读(50) 评论(0) 推荐(0)
摘要: 排序 一、什么是排序 将一组杂乱无章的数据按照一定规律顺次排列起来的运算。 注:如果参与排序的数据节点包含多个数据域,那么排序往往是针对其中某个域而言。比如学生有学号、成绩、身高等。 排序的应用非常广泛,比如excel中、文件中、二分法查找等都有用到排序,因此很有必要研究排序。 二、排序的分类 按数 阅读全文
posted @ 2021-08-25 22:20 Pangenda 阅读(73) 评论(0) 推荐(0)
摘要: 图(graph) 一、图的定义 用顶点、边构成的存储结构。有: G=(V,E)(graph=(Vertex,Edge)) Vertex就是顶点的有穷非空集合,Edge就是边的的 有穷集合。 二、图的术语 有向图/无向图:无向图中的边叫边,有向图中的边叫弧 完全图:对无向图取任意两个顶点都有一条边相连 阅读全文
posted @ 2021-08-21 20:00 Pangenda 阅读(242) 评论(0) 推荐(0)
摘要: 串 一、定义 串是由零个或多个字符组成的有限序列,又叫字符串。和栈、队列一样,既有链式存储也有连续存储,但总的来说,在串这里连续存储优于链式存储,因此我们大都只讨论连续存储。由此我们可知,这里连续存储就和我们熟知的char类型数组一样了。 二、串的操作 栈、队列中更多的是关注单个元素的操作,比如查找 阅读全文
posted @ 2021-08-18 21:44 Pangenda 阅读(482) 评论(0) 推荐(0)
摘要: 树(tree) 一、定义 树是n个节点的有限集。n=0时称为空树,n>1时其余结点可分为m(m>0)个互不相交的有限集,其中每个集合本身又是一棵树,并且称为根的子树。形状类似于树状图,如下图所示: 再次强调几点: 1.根节点是唯一的,不可能存在多个根节点。 2.子树的个数没有限制,但是一定不可能相互 阅读全文
posted @ 2021-08-16 22:46 Pangenda 阅读(238) 评论(0) 推荐(0)
摘要: 递归 一、概念 一个函数直接或者间接调用自己的方法就称为递归,递归在C语言里是靠栈来实现的。递归的使用可以让人更容易理解程序的作用,但运行速度很慢。 一.五、补充 递归如何靠栈来实现的 以如下斐波那契数列为例讲解 int Fbi(int i) { if(i<2) return i==0? 0 : 1 阅读全文
posted @ 2021-08-16 22:10 Pangenda 阅读(72) 评论(0) 推荐(0)
摘要: 队列(queue) 一、定义 一种可以实现“先进先出”(FIFO)的存储结构,即先进入队列的数据先取出来。 二、分类 链式队列:链表实现,实现难度比静态队列低很多 静态队列:数组实现,静态队列通常都必须是循环队列 三、程序实现前该解决的问题 (1)静态队列为什么必须是循环队列? 因为front、re 阅读全文
posted @ 2021-08-16 17:32 Pangenda 阅读(102) 评论(0) 推荐(0)
摘要: 栈(stack) 一、定义 一种可以实现“后进先出(LIFO,last in first out)”的存储结构,即后存放进栈的数据要先出去。就像箱子里取书一样,先拿上面的书,再拿下面的书。 二、栈的分类 静态栈:即采用连续存储(数组)的方式实现 动态栈:即采用离散存储(链表)的方式实现,示意图如下 阅读全文
posted @ 2021-08-16 16:46 Pangenda 阅读(94) 评论(0) 推荐(0)
摘要: 链表(list) 如下图所示即为普通的单链表结构: 一、概念 N个节点(node)离散分配、彼此通过指针相连、每个节点只有一个前驱节点和一个后驱节点,首节点没有前驱节点,尾节点没有后续节点 专业术语: 首节点:存放第一个有效数据的节点 尾节点:存放最后一个有效数据的节点 头节点:首节点之前的那个节点 阅读全文
posted @ 2021-08-16 16:39 Pangenda 阅读(111) 评论(0) 推荐(0)
摘要: 数组(array) 这里所讲的数组和前面知识讲的差不多一样,都是开辟一片连续存储的空间,只不过这里只是认为定义了一个类数组的结构体。 一、利用数组存储数据的优缺点 优点:存取速度快,实现容易理解。 缺点:插入删除元素很慢,因为每次都需要左移或者右移。 二、和数组有关的基本操作 初始化:先声明一个数组 阅读全文
posted @ 2021-08-16 16:07 Pangenda 阅读(59) 评论(0) 推荐(0)