数据结构(一)
文章平均质量分 71
TheShyclear
欲戴皇冠,必承其重
展开
-
一:单链表——②有序单链表的合并
上一篇介绍了单链表的基础实现,https://blog.csdn.net/genzld/article/details/81060013 这篇文章介绍的是两个有序链表的合并,后面还会相应的介绍排序,无需链表的有序合并等 /* 制作信息: 制作日期:2018-7-18 制作人 :TheShyclear 制作内容:简单数据结构_有序单链表的合并 版本 :8.0 内容信息:...原创 2018-07-18 18:39:31 · 370 阅读 · 0 评论 -
一:单链表——①代码实现
在这里我会给大家详细介绍数据结构中的各种链表,队列,栈,表,串,排序等算法的详细介绍,下面我们来介绍带头节点的单链表的具体实现: 要实现一种数据结构,最重要地是能够构思出一种结构,来实现你解决问题的思维(思路)。在带头节点的单链表中,我们可以分析知道,该链表中存在两种结构,①头节点的结构②数据结点的结构: ...原创 2018-07-16 10:12:28 · 2987 阅读 · 0 评论 -
一:单链表——③查询倒数第k个节点(O(1))
制作人 :TheShyclear 制作时间:2018-7-21 制作内容:查找单链表中的倒数第k个数据 版本号 :8.0 缺陷:头节点只能插入一次,不能在1号节点出插入,详细看Insert函数 注意:头指针的不可改变性 思路:单链表中的许多问题需要用到两个指针的配合,因为单链表只有后继节点,无法找到后继节点。 当我们拿到这个问题时,第一反应肯定是:用一个指针指向头...原创 2018-07-22 15:32:51 · 821 阅读 · 1 评论 -
一:单链表——④判断两个单链表是否相交
题目:输入两个链表的头节点,判断这两个链表是否存在相交 链表的定义如下: typedef int Elemtype; typedef struct ListNode { Elemtype data;//值域 ListNode *m_pNext;//指针域 }ListNode,*PListNode; 看到这个题目后大多数的人的第一反应应该就是,判断这两个链表的任意一个节点的指针是...原创 2018-07-27 18:57:36 · 4810 阅读 · 0 评论 -
一:单链表——⑤带环单链表的详细讲解
今天看了一篇关于带环单链表精讲的文章,在这里给大家做一个总结。之前看过很多有关单链表带环的文章,但是有些文章讲的太文章化,不容易理解,理论性太强。接下来我会用最简单通俗易懂的语言解析这个问题。 当你拿到一个单链表的数据信息时,我相信大部分的人都会选择去判断一下这个单链表是否有环?这也是最基本的反应。下面我给出单链表的数据结构: typedef int Elemtype; //头节...原创 2018-08-01 20:17:56 · 1620 阅读 · 0 评论 -
线性表——静态链表
前言: 其实C语言真是好东西,它具有一定的指针能力,这使得我们能够非常容易地操作内存中的地址和数据,这比其它的高级语言更加的灵活方便,后来面向对象的语言,例如Java,C#等,虽然他们不使用指针,但是因为是启用了对象引用机制,从某种角度来讲也间接实现了指针的某些作用,但是如Basic ,Fortran等早期的编程高级语言,由于没有指针,链表结构按照我们前面的做法,就没有办法实现了。那么怎么办...原创 2018-08-06 20:15:59 · 535 阅读 · 0 评论 -
八大排序———堆排序
堆排序算法原理: 1.堆排序说明:堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。可以利用数组的特点快速定位指定的索引元素。堆分为大根堆和小根堆,是完全二叉树。大根堆要求每个节点的值都不大于其父节点的值。在数组的非降序排序中,使用的就是大根堆,因为根据大根堆的要求可知,最大的值一定是在堆顶。 2.算法描述:(建堆 -》调整堆 -》堆排...原创 2018-10-18 10:54:54 · 160 阅读 · 0 评论 -
快速排序的优化
三种快速排序以及快速排序的优化: 一:快速排序的基本思想 快排使用分治的思想: 通过一趟排序将待排序序列分割成两部分,其中一部分记录的关键字均比另一部分记录的关键字小。之后分别对这两部分记录继续进行排序,以达到整个序列有序的目的。 二:快速排序的三个步骤 1.选择基准 在待排序列中,按照某种方式挑出一个元素,作为“基准”(pivot) 2.分割操作 以该基准在序列中...原创 2018-11-15 20:22:57 · 617 阅读 · 0 评论