数据结构与算法分析
文章平均质量分 75
ajuse
技术宅改变世界!
展开
-
数据结构基础概念篇
数据结构一些概念数据结构就是研究数据的逻辑结构和物理结构以及它们之间相互关系,并对这种结构定义相应的运算,而且确保经过这些运算后所得到的新结构仍然是原来的结构类型。数据:所有能被输入到计算机中,且能被计算机处理的符号的集合。是计算机操作的对象的总称。 数据元素:数据(集合)中的一个“个体”,数据及结构中讨论的基本单位 数据项:数据的不可分割的最小单位。一个数据元素可由若干个数据...转载 2018-11-22 23:19:17 · 293 阅读 · 0 评论 -
数据结构与算法分析(C语言描述)-- 初识数据结构
常用的数据结构类型1、数组有限连续相同变量类型的元素组成的序列或者集合2、表单链表 双链表 循环链表 双向循环链表 多重表3、栈先进后出或者后进先出的数据结构,只能基于栈顶操作4、队列先进先出,后进后出的数据结构,可以在头部和尾部进行操作5、树二叉树 平衡树 红黑树6、散列7、堆8、图关于数据...原创 2018-11-23 00:01:35 · 225 阅读 · 0 评论 -
数据结构与算法分析(C语言描述)-- 学习&理解链表
1、基础知识关于链表,相对于数组来说,有着更加灵活的存储分配方式,链表可以不连续存储,从另一方面来讲,也算充分利用空间;插入以及删除操作也相对容易,不会像数组会整体数据的移动,但是对于查找来说,会比数组要费时的多,数组查找只需要O(1),而链表的查找则需要O(N);一般都会采用动态分配内存来生成链表,灵活性也有一定的保证;2、链表描述2.1 单链表链表为一个一个结点组成,每个结点可...原创 2018-11-27 23:47:42 · 1020 阅读 · 0 评论 -
数据结构与算法分析(C语言描述) -- 学习&理解 AVL树
1、AVL树概念AVL树是带有一种平衡条件的二叉查找树,树的深度为O(logN);左右子树看起来相对平衡,一颗不平衡的树可能意味着树的操作会大于O(logN),AVL树就是能很好的保持在O(logN)的一种算法;性质1:左右子树深度最多差1的二叉查找树;性质2:左右子树都是平衡二叉树;除叶子结点以外,其他结点均有两个children的树称为完全二叉树或理想平衡树,或者也可以说左右子...原创 2018-12-12 23:49:29 · 383 阅读 · 0 评论 -
数据结构与算法分析(C语言描述) -- 学习&理解 栈
1、基础知识在stack(栈)中,,删除的总是最近插入的元素,也就是先进后出,后进先出的策略;在stack中的插入或添加操作,称为push,出栈的操作称为pop,也称为弹出,即从stack中删除这个元素;stack开始的地方称为栈底,stack结束的地方称为栈顶;入栈出栈皆在栈顶操作,当栈顶等于栈底,元素全部被弹出,称为空栈;如果用数组的方式实现栈,如stack[n]那么,当对一个空栈进行po...原创 2018-12-03 22:08:29 · 377 阅读 · 0 评论 -
数据结构与算法分析(C语言描述) -- 学习&理解 队列
1、队列基础知识队列中的插入添加操作称为入队(enqueue),删除操作称为出队(dequeue);队列有队头与队尾,类似于排队结账的队伍一样;可以利用数组来实现队列这个数据结构,当然也可以用链表实现;2、队列的实现2.1 队列的数组实现定义一个数组,数组大小固定,那么队列需要判断队列是否为空和队列是否已满;对于队列已满的操作,可以将rear(后部)再绕回指向队列起始位置,此操作方...原创 2018-12-04 00:14:10 · 202 阅读 · 0 评论 -
数据结构与算法分析(C语言描述) -- 学习&理解 二叉树
1、树的概念由根和0个或多个子树构成,子树与跟之间通过线来连接,每一棵子树的父节点叫做根的子节点,可以类似于倒着生长的树的感觉;一般的树可以由多个结点组合,每个结点也可以生成多个子节点,一棵树总共有N个节点和N-1条边构成,因为每个结点总有一条边指向它,root结点不会有边指向;没有儿子结点的称为树叶;由任意结点到根节点的最短路径的描述可以称为深度,一棵树的深度为最深的树叶的深度;常用的目...原创 2018-12-10 22:51:54 · 341 阅读 · 0 评论