![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 54
Dontflinch
湖南工商大学计算机科学与技术专业本科生在读
展开
-
快速排序的基本思想(图文详解)
快速排序算法通过多次比较和交换来实现排序,其排序流程如下:(1)首先设定一个分界值,通过该分界值将数组分成左右两部分。(2)将大于或等于分界值的数据集中到数组右边,小于分界值的数据集中到数组的左边。此时,左边部分中各元素都小于分界值,而右边部分中各元素都大于或等于分界值。(3)然后,左边和右边的数据可以独立排序。对于左侧的数组数据,又可以取一个分界值,将该部分数据分成左右两部分,同样在左边放置较小值,右边放置较大值。右侧的数组数据也可以做类似处理。(4)重复上述过程,可以看出,这是一个递归定义。原创 2023-03-12 18:04:09 · 5900 阅读 · 12 评论 -
【数据结构】二叉树的基本操作中的一些易错点
笔者整理出了一些关于萌新在入门二叉树时容易犯的一些错误,你也来试试自己会不会掉到这些坑里把~以上就是笔者对二叉树递归里的一些易错点的记录。代码纯手打,可能存在漏洞、瑕疵。如发现欢迎指正!原创 2023-03-05 15:45:04 · 1848 阅读 · 17 评论 -
题解:牛客网OR36 链表的回文结构
对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构。给定一个链表的头指针A,请返回一个bool值,代表其是否为回文结构。保证链表长度小于等于900。测试样例:1->2->2->1返回:true。原创 2023-01-09 09:47:04 · 196 阅读 · 0 评论 -
【数据结构】栈的基本操作
文章目录前言一、初始化栈二、销毁栈三、判断栈是否为空四、进栈五、出栈六、取栈顶元素总结前言栈的基本操作有1.初始化栈2.销毁栈3.判断栈是否为空4.进栈5.出栈6.取栈顶元素首先定义好栈的数据类型typedef int ElemType; typedef struct { ElemType data[MaxSize]; inttop; }SqStack;一、初始化栈void InitStack(SqStack*& s) { s = (SqStack*)malloc(si原创 2022-05-07 17:27:38 · 4643 阅读 · 0 评论 -
【数据结构】单链表的基本操作
文章目录一、单链表的操作二、具体代码(不可运行,非完整代码!)总结一、单链表的操作1.头插法建立单链表。2.尾插法建立单链表3.初始化单链表、4.销毁单链表、5.判断单链表是否为空表。6.求单链表的长度。7.输出单链表。8.求单链表中的某个数据元素值。9.按元素值查找。10.插入数据元素.11.删除数据元素二、具体代码(不可运行,非完整代码!)代码如下:typedef int ElemType;typedef struct Lnode{ ElemType data; struct Lnod原创 2022-05-06 21:07:38 · 2656 阅读 · 1 评论 -
【数据结构】:实现顺序表各种基本运算的算法
文章目录目的内容二、详细代码运行结果目的领会顺序表存储结构和掌握顺序表中各种基本运算算法设计。内容编写一个程序sqlist.cpp,实现顺序表的各种基本运算和整体建表算法(假设顺序表的元素类型ElemType为char),并在此基础上设计一个主程序,完成如下功能:初始化顺序表L依次插入a,b,c,d,e元素输出顺序表L输出顺序表L长度判断顺序表是否为空输出顺序表L的第3个元素输出元素a的位置在第4个元素位置上插入f元素输出顺序表L删除顺序表L的第3个元素输出顺序表L释放顺原创 2022-04-24 01:03:13 · 12966 阅读 · 9 评论