数据结构
最近在复习数据结构,整理一些代码日后参考。
要做了不起的人Zzzcg
仰望星空,脚踏实地
展开
-
查找算法总结
顺序查找:最简单的遍历的方法,适用于各种线性表。折半查找:比顺序查找效率更高,节省一半的时间,适用于有序的线性表,使用条件是有序,其改进的算法包括插值查找和斐波那契查找法。索引顺序查找:介于折半查找和顺序查找之间的一种算法,适合动态变化且结点数量较多的表。二叉排序树:用于树中结点的查找,特点是左儿子的值一定小于父亲的值,右儿子的值大于父亲的值,左右子树也分别是二叉排序树。这样的数据结构...原创 2020-01-02 15:19:18 · 1646 阅读 · 0 评论 -
图的遍历DFS和BFS代码实现
图的深度优先遍历是树的先序遍历的延伸,先序遍历是DFS的特殊情况。从图中任选一个顶点v,访问后开始随意选一个邻接点,从新的邻接点开始进行DFS,以此类推,这是一个递归的过程,直到遍历完图中所有结点。实际上,递归算法的本质就是一个栈,递归算法消耗大量的内存存储临时变量和中间状态,但是代码更简单。(至于用不用递归,就看实际需求吧)图的非递归深度优先遍历,引入一个数组和一个栈,数组visit[]...原创 2019-12-25 20:56:23 · 2343 阅读 · 0 评论 -
图的几种表示方法
图数据结构的表示方法大致分为四种,邻接矩阵、邻接表、十字链表、多重邻接表。邻接矩阵是最容易理解的表示方法,优点是简单易懂,缺点是可能会占用很多存储空间,且没有任何意义,空间复杂度有向图是n^2,无向图是n(n-1)/2,因为无向图矩阵是对称的,只需要存储一半且不包含对角线即可。邻接矩阵的存储优化可以通过矩阵优化来实现(具体可以看矩阵的压缩方法)。邻接表就是更加灵活,节省存储空间空间复杂度有...原创 2019-12-25 13:33:58 · 4983 阅读 · 0 评论 -
树的表示方法以及先、中、后序遍历以及求叶子结点个数和树的深度代码C代码
树的概念及性质暂时略树的表示方法图形表示法:直观清晰易于理解。广义表表示法:不常用。左孩子右兄弟表示法:可以将多叉树转化为二叉树的一种表示方法,而二叉树更适合计算机表示。(也就是说一般遇到多叉树,转化成二叉树)二叉树及性质略二叉树的存储结构顺序存储用一个数组来存储二叉树,结合二叉树的性质,可以保存树的结点之间的关系。最适合完全二叉树和满二叉树,如果是一般二叉...原创 2019-12-17 10:16:39 · 2412 阅读 · 1 评论 -
顺序队列和链式队列的C语言实现
老规矩,简单的算法就不做其他解释了,直接上代码。首先是顺序存储SeqQueue.h头文件#ifndef _SEQQUEUE_H#define _SEQQUEUE_H#define MAXSIZE 50typedef struct Queue * SeqQueue;struct Queue{ int front; //队伍头 int rear; //队伍尾 int da...原创 2019-11-20 20:37:43 · 2183 阅读 · 1 评论 -
栈的链式结构以及中缀表达式转后缀表达式(逆波兰式)C语言实现
栈的数据结构就不多说了,后进先出,只有一个出口。最典型的应用就是中缀表达式转后缀表达式,因为计算机不能识别人类所认知的中缀表达式,逆波兰式多用于编译器实现、自然语言处理这些常用的领域。下面介绍中缀转后缀的具体过程。比如1+3*(2+5)转化成后缀表达式是:1325+*+,转化算法为:1、对于数字,直接输出2、对于符号: 左括号:进栈,不管栈中是否有元素 运算符:若此时栈为...原创 2019-11-13 18:21:26 · 1892 阅读 · 1 评论 -
单向链表C语言实现
list.h#pragma once#ifndef _LIST_H#define _LIST_Hstruct Node{ int data; struct Node * next;};struct Header{ int length; struct Node * next;};typedef struct Node List;typedef struct H...原创 2019-11-05 18:28:08 · 1484 阅读 · 0 评论 -
顺序链表C语言实现
顺序链表没什么说的啦,直接上代码,参考了传智播客出版的数据结构。创建工程的时候不小心弄成c++了,不过没关系,都一样。Operation中有一处语法上的疑惑,就是插入的那个函数中,node为什么要强制转换成整型,既然等式两边都是指针,为什么不是转化成int* ,有心人帮忙解答一下,谢谢。SeqList.h头文件#ifndef _SEQLIST_H_#define _SEQLIST_...原创 2019-11-04 18:18:54 · 3306 阅读 · 1 评论