
DS笔记
文章平均质量分 71
数据结构笔记
s_persist
来日方长,何惧车遥马慢。
展开
-
时间复杂度相关OJ题
文章目录一、消失的数字问题描述解题思路代码实现二、旋转数组问题描述解题思路代码实现三、问题描述解题思路代码实现总结一、消失的数字问题描述直通车.解题思路先对数组进行排序,然后再一一比较,但最快的排序算法的时间复杂度也是O(n*log2(N)),显然不合题意。将1到n加起来,sum1=1+2+····+n,然后sum2=arr[1]+arr[2]+···+arr[n-1],那么缺的数x=sum1-sum2。显然可行,但似乎还不是最优。我们可以以时间换空间,设置一个等长的数组,初始化为0,遍原创 2021-10-28 19:03:41 · 208 阅读 · 0 评论 -
数据结构-时间复杂度和空间复杂度
文章目录前言总结前言# 一、算法效率# 二、时间复杂度# 三、空间复杂度总结原创 2021-10-27 18:09:59 · 287 阅读 · 2 评论 -
【数据结构】排序总结
文章目录一、插入排序直接插入排序基本思想代码实现性能分析希尔排序基本思想代码实现性能分析二、选择排序直接选择排序基本思想代码实现性能分析堆排序基本思想代码实现性能分析三、交换排序冒泡排序基本思想代码实现性能分析快速排序基本思想代码实现性能分析四、归并排序归并排序基本思想代码实现性能分析五、非比较排序计数排序基本思想代码实现性能分析一、插入排序稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前原创 2021-11-24 18:28:54 · 1861 阅读 · 0 评论 -
二叉树相关函数实现
文章目录二叉树实现二叉树结构定义创建结点模拟创建二叉树,用于测试二叉树前序遍历二叉树中序遍历二叉树后序遍历二叉树节点个数二叉树叶子节点个数二叉树深度/高度二叉树第k层节点个数二叉树查找值为x的节点二叉树层次遍历二叉树销毁判断二叉树是否是完全二叉树二叉树测试二叉树实现二叉树结构定义#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<stdlib.h>#include<stdbool.h>#inc原创 2021-11-14 20:35:35 · 1555 阅读 · 0 评论 -
栈和队列OJ题目
文章目录括号匹配问题问题描述思路分析代码解析用队列实现栈问题描述思路分析代码解析用栈实现队列问题描述思路分析代码解析设计循环队列问题描述思路分析代码解析顺序表实现链表实现括号匹配问题问题描述https://leetcode-cn.com/problems/valid-parentheses/思路分析遇到左括号就入栈,遇到右括号就取出栈顶元素与之相比,如果不配对就返回假,否则继续。需要判断一些特殊情况,比如全是左括号。代码解析本代码是用C语言写的,需要在前面添加栈的实现相关函数。bool原创 2021-11-14 20:26:26 · 1513 阅读 · 0 评论 -
栈和队列的实现
文章目录一、栈的实现初始化栈销毁栈入栈出栈获取栈顶元素获取栈元素个数判断栈是否为空打印栈元素二、队列的实现一、栈的实现初始化栈//初始化栈void StackInit(ST* ps){ assert(ps); ps->a = NULL; ps->top = 0;//top指向栈当前元素的下一个位置 ps->capacity = 0;}销毁栈void StackDestroy(ST* ps){ assert(ps); free(ps->a); ps原创 2021-11-06 16:45:31 · 110 阅读 · 0 评论 -
单链表和双向链表实现
文章目录一、单链表结构定义动态申请一个节点单链表打印单链表尾插单链表头插单链表尾删单链表头删单链表查找在pos位置之前去插入一个节点删除在pos位置节点单链表在pos位置之后插入x单链表删除pos位置之后的值单链表销毁二、双向链表结构定义初始化链表双向链表打印创建一个新的结点双向链表尾插双向链表尾删双向链表头插双向链表头删双向链表查找双向链表在pos的前面进行插入双向链表删除pos位置的节点摧毁链表一、单链表单向不带头不循环链表的实现结构定义#include<stdio.h>#in原创 2021-11-05 19:58:52 · 107 阅读 · 0 评论 -
C语言实现数据结构-顺序表
文章目录前言一、概念及结构二、接口实现三、相关OJ题目四、顺序表优缺点总结前言一、概念及结构二、接口实现三、相关OJ题目四、顺序表优缺点总结原创 2021-10-25 17:57:38 · 220 阅读 · 4 评论