数据结构
文章平均质量分 63
歪卜派可
这个作者很懒,什么都没留下…
展开
-
数组中的重复数字
找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/shu-zu-zhong-zhong-fu-de-shu-zi-lcof题解:原地交换的思路(形象比喻给每个坑找自己的萝卜)给定了长度为n的数组,数组中每个数字都在0-n-1(注意此题是默原创 2021-04-23 16:12:13 · 152 阅读 · 0 评论 -
双向链表的创建及其基本操作
单链表是每一个节点(结构体)通过各自的指针,不断地指向下一个节点从而将它们串成链.而双向链表在保持这一特征之外,最大的区别就是,每一个节点还指向了它的上一个节点,即每个节点的指针域多了一个指向前驱的指针,从而形成了一个反向的链,所以将这种链表称作双向链表.不难看出,其实双向链表由单链表衍生出来,并没有增加很多复杂度,只要能够理解单链表的一些基本操作,双向链表也就很容易掌握拉-<.下面我贴...原创 2019-03-25 13:09:57 · 1173 阅读 · 2 评论 -
二分查找_详解[原理+题目]
6-1 二分查找 (20 point(s))本题要求实现二分查找算法。函数接口定义:Position BinarySearch( List L, ElementType X );其中List结构定义如下:typedef int Position;typedef struct LNode List;struct LNode {ElementType Data[MAXSIZE];Po...原创 2019-03-30 19:45:37 · 648 阅读 · 0 评论 -
6-5 先序输出叶结点 (15 point(s))
6-5 先序输出叶结点 (15 point(s))本题要求按照先序遍历的顺序输出给定二叉树的叶结点。函数接口定义:void PreorderPrintLeaves( BinTree BT );其中BinTree结构定义如下:typedef struct TNode *Position;typedef Position BinTree;struct TNode{ElementType...原创 2019-03-30 20:53:58 · 2428 阅读 · 0 评论 -
6-3 有序数组的插入 (20 point(s))
本题要求将任一给定元素插入从大到小排好序的数组中合适的位置,以保持结果依然有序。函数接口定义:bool Insert( List L, ElementType X );其中List结构定义如下:typedef int Position;typedef struct LNode List;struct LNode {ElementType Data[MAXSIZE];Position...原创 2019-03-30 21:28:41 · 2815 阅读 · 0 评论 -
6-2 希尔排序的实现
希尔排序的实现函数接口定义:void ShellInsert(SqList L,int dk);其中L是待排序表,使排序后的数据从小到大排列。类型定义:typedef int KeyType;typedef struct {KeyType *elem; /elem[0]一般作哨兵或缓冲区/int Length;}SqList;裁判测试程序样例:#include<stdi...原创 2019-04-27 17:29:33 · 5252 阅读 · 1 评论 -
6-4 快速排序
本题要求实现快速排序的一趟划分函数,待排序列的长度1<=n<=1000。函数接口定义:int Partition ( SqList L,int low, int high );其中L是待排序表,使排序后的数据从小到大排列。类型定义:typedef int KeyType;typedef struct {KeyType *elem; /elem[0]一般作哨兵或...原创 2019-04-28 17:03:20 · 9972 阅读 · 0 评论