![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 86
数据结构
柒柒花生酱
趁着年轻,多奋斗奋斗。
展开
-
C语言数据结构——排序类算法
文章目录前言基于插入的排序算法直接插入排序希尔排序基于选择的排序算法直接选择排序堆排序冒泡排序分治类排序算法快速排序归并排序计数排序(非比较排序)前言这几天耗费了大量的时间去理清排序类算法的实现以及复杂度,对排序也算是略懂一二,下面博主就进行详细的介绍算法的思路与实现过程的代码。基于插入的排序算法这一类算法类似于,有序的整理扑克牌,将牌不断插入从而形成有序的牌堆。插入类排序与之类似,其主要分为直接插入排序以及衍生出来的希尔排序。直接插入排序使用最后一个元素与其数组其他元素通过遍历比较,找到需原创 2021-06-01 00:14:19 · 468 阅读 · 5 评论 -
C语言数据结构——二叉树的熟练掌握
前言如往常一样,实践是提升自身能力的重要一环,本博客主要以题目练习为主,从而达到提升代码能力的效果。二叉树与堆栈以及队列不同地方在于二叉树大部分都是由递归的方式来实现的,所以思路可能会稍稍比较绕,而且必须提前熟练掌握前序、中序、后序的遍历方式。好了,话不多说,直接开始咯!题目序号题目链接1单值二叉树LeetCode2二叉树最大深度LeetCode3翻转二叉树LeetCode4检查两颗树是否相同LeetCode5对称二叉树LeetCode原创 2021-05-25 17:10:01 · 324 阅读 · 3 评论 -
实践出真知——深入了解栈与队列
前言实践出真知,为进一步深入理解栈与队列,博主准备了四道例题来巩固栈与队列的知识,毕竟纸上得来终觉浅,实践是验证真理的唯一途径嘛,也是验证你学习成果的时候。题目序号题目链接1括号匹配问题LeetCode2用队列实现栈LeetCode3用栈实现队列LeetCode4设计循环队列LeetCode括号匹配问题 这个题目比较有意思的点在于可以用栈的方式进行实现,但是由于博主目前学习的数据结构主要是由c语言进行编写,所以在使用栈的时候需要引入栈的原创 2021-05-15 01:04:01 · 316 阅读 · 3 评论 -
C语言数据结构——栈和队列的实现
文章目录前言栈Stack.hStack.c队列Queue.hQueue.c结束语前言本文章主要是为下一篇的在线OJ题目做铺垫,因为仅仅用c语言做栈与队列的OJ题时需要自己造轮子,也就是自己编写栈或者队列的前提下完成题目代码的编写。栈(FIFO先进先出)的实现主要是用动态数组的形式构建,先进先出用数组再方便不过,只需要记录下标的值,初始为零,每次入栈加数据,下标加一,出栈的时候只需要将下标减一所对应的内容取出即可。队列(FILO先进后出)的实现主要是用不带头循环的单链表的形式构建,注意需要记录头结点与原创 2021-05-13 23:23:14 · 248 阅读 · 0 评论 -
C语言数据结构——带头双向循环链表的实现
文章目录前言双链表的实现DoubleList.hvoid ListPrint(ListNode* phead)ListNode* BuyListNode(LTDataType x)void InitList(ListNode** pphead)void ListPushBack(ListNode* phead, LTDataType x)void ListPopBack(ListNode* phead)void ListPushFront(ListNode* phead, LTDataType x)void原创 2021-05-09 20:50:32 · 373 阅读 · 3 评论 -
c语言数据结构——如何学好链表?教你一招(进阶)
前言这里属于单链表的一些进阶题目,如果之前题目都能熟练掌握的话,说明你单链表的代码能力基本问题是不大了,缺的只有做的的逻辑思路了,接下来博主会为大家再带来四道单链表的题目,帮助你在手撕代码的道路上更上一层!!!题目序号题目难度链接方法1环形链表中等LeetCode快慢双指针2复杂链表的拷贝中等LeetCode侵入式复制3链表的有序排序中等LeetCode哨兵位结点+插入4删除链表中重复结点中等牛客网三指针环形链表原创 2021-05-07 15:41:17 · 232 阅读 · 1 评论 -
c语言数据结构——如何学好链表?教你一招(初级)
前言其实很多编程语言都差不多的,编程无非就是语法的熟练运用,清晰逻辑思路以及各种极端情况的考虑。不过博主说“无非”二字有点太过轻巧,毕竟自个儿也才是一个半斤八两的小东西,但是既然是要写博客,那么底气就得拿出来。链表有个最重要的点就是需要有清晰的逻辑思路,那么该怎么做到呢?画图!!!画图!!!画图!!!,换句话来说只要你能够把逻辑思路用图的方式画出来,各种问题也就能够迎刃而解。说道问题问题,那么链表当然也逃离不了练习题目,说白了,想要提升一门技能的经验值,最快的方法也就是实践,多实践你才能真实的感受其中原创 2021-05-06 17:33:22 · 778 阅读 · 7 评论 -
一道常规求解方法无法完成的小例题
前言本以为c语言各种语法学好了就能够在例如LeetCode、牛客网以及实验楼等相关网站进行刷题,没想到在做一些简单题的时候就已经够我喝一壶的了。换句话来说,会语法并不代表你会各个题的解题思路、算法以及逻辑,也就是说会语法也仅仅是刚刚踏上手撕代码的第一步。路还很长,好好加油吧!LeetCode(例题)最近在Leetcode上面看到了一个比较有意思的题目: 989.数组形式的整数加法(可点击打开)。下面由博主为大家介绍与讲解(记得瞅瞅题目):我们常规的写法一般来说都是讲数组以整数的形式拿出来,比如A原创 2021-05-03 15:04:56 · 114 阅读 · 0 评论