![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 86
qq_32672481
这个作者很懒,什么都没留下…
展开
-
【数据结构】单链表
单链表的基本实现 LinkedList一种编程思想: 写代码前先总结过程比如在写头插时,先分析出有3种状态1.空链表 2.一个节点 3.多个节点再根据状态写算法步骤,最后总结写代码LinkedList.h#pragma once#include #include #include #include typedef int DataType;typede原创 2017-06-09 21:38:33 · 556 阅读 · 1 评论 -
【数据结构】单链表--基础
在实现单链表的基本功能后单链表的几个基本问题:1.比较顺序表和链表的优缺点,说说它们分别在什么场景下使用?顺序表(物理位置相邻):优点:在一段内存中用数组连续存放,所以方便随机查找元素。 缺点:动态开辟,容易造成内存浪费,需要一个元素,开辟过多。前面添加元素时,要逐个挪动后面的每个元素,较麻烦。 场景:数据频繁查找修改,但很少添加。单链表(物理位置不相邻):优点原创 2017-06-09 22:41:53 · 680 阅读 · 3 评论 -
【数据结构】单链表--进阶题目
在实现单链表的基本与基础的操作后: 我们可以在单链表中考虑环与相交以及复杂单链表的问题。1.判断单链表是否带环?若带环,求环的长度?求环的入口点?并计算每个算法的时间复杂度&空间复杂度: ListNode* IsCycle(ListNode *pList)//是否带环{ if ((pList == NULL) || (pList->next == NULL)) return原创 2017-06-12 22:58:06 · 417 阅读 · 0 评论 -
【数据结构】单链表--复杂链表的复制
在学习链表的最后,我们接触了复杂链表。一个链表的每个节点,有一个指向next指针指向下一个节点,还有一个random指针指向这个链表中的一个随机节点或者NULL,现在要求实现复制这个链表,返回复制后的新链表。 首先定义链表结构:typedef struct ComplexNode//复杂链表的结构{ DataType data; struct ComplexNode *_next原创 2017-06-15 17:28:23 · 899 阅读 · 0 评论 -
【数据结构】AVL树
AVL树叫作高度平衡二叉树,性质-》 首先是二叉树,具有二叉树的左小右大,之所以叫做高度平衡,他可以根据插入的顺序来自动调节平衡, 使左右子树的高度差绝对值小于1。so 加入了一个平衡因子来判平衡,并旋转等一些操作来到达平衡。 下面为一个数学规律:时间复杂度:log2^N结点树为n,完全二叉树的高 度h = log2n高度h从零开始计设高度为h...原创 2018-04-05 11:17:28 · 312 阅读 · 0 评论 -
【数据结构】搜索树
二叉搜索树Binary Search Tree 静态查找, 动态查找无序链表:灵活性好有序数组:效率高直接把元素放在树上,树的动态性强。这种方式查找,即灵活又效率高。 二叉搜索树,又称有序二叉树,排序二叉树顾名思义用来排序,何以排序,键值比大小键 : key 排序用的是key,权值值 :value 有意义的数据性质:1.非空左子树的键值...原创 2018-04-05 16:39:21 · 375 阅读 · 0 评论