数据结构
文章平均质量分 92
初阶数据结构和c语言
格式化、、
不忘初心,方得始终...
展开
-
数据结构之<哈希表>
本篇文章进行数据结构中哈希表的学习!!!原创 2022-09-23 16:38:01 · 477 阅读 · 0 评论 -
数据结构之“七大排序“
1. 排序的概念和应用1.1、排序的概念排序:什么是排序?排序就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作内部排序:数据元素全部放在内存中的排序外部排序:数据元素太多不能同时放在内存中,根据排序过程的要求不能在内外存之间移动数据的排序稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳原创 2022-04-28 00:48:46 · 1979 阅读 · 6 评论 -
数据结构之二叉树(链式)
文章目录1. 二叉树的概念及结构1.1、概念1.2、构造二叉树2. 二叉树的遍历2.1.1、前中后序遍历概念2. 1.2、前序遍历2.1.3、中序遍历2.1.4、后序遍历2.2.1、层序遍历1. 二叉树的概念及结构1.1、概念一棵二叉树是结点的一个有限集合,该集合:空树由一个根节点加上两棵别称为左子树和右子树的二叉树组成非空:根节点,根节点的左子树、根节点的右子树组成二叉树不存在度大于2的节点二叉树的子树有左右之分,次序不能颠倒,因此二叉树是有序树注意:对于任意的二叉树都是由原创 2022-04-17 16:01:28 · 916 阅读 · 3 评论 -
二叉树---堆及堆排序和TOP-K问题
文章目录1、树的概念及结构1.1树的概念1.2 树的概念1.3 树的表示1.4 树在实际中的运用2. 二叉树概念及结构2.1 概念1、树的概念及结构1.1树的概念树:树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为****它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。有一个特殊的结点,称为根结点,根节点没有前驱结点除根节点外,其余结点被分成M(M>0)个互不相交的集合T1、T2、……、Tm,其中每一个集合Ti(1&l原创 2022-04-08 11:39:06 · 433 阅读 · 4 评论 -
数据结构之栈和队列
文章目录1.1 栈的结构及概念1.2 栈的实现1.3 栈的完整代码1.4 OJ题:"有效括号"2.1 队列的结构及概念2.2 队列的实现1.1 栈的结构及概念栈:一种特殊的线性表。只允许在固定的一端进行插入和删除元素的操作。插入和删除的一端叫做栈顶,LIFO(Last In First Out)的原则。栈中的数据遵循后进先后LIFO(Last In First Out)的原则。压栈:栈的插入操作叫做压栈/入栈/进栈,入数据在栈顶。出栈:栈的删除操作叫做出栈,出数据也在栈顶。数据结构中的栈原创 2022-04-05 17:41:01 · 1551 阅读 · 2 评论 -
数据结构之带头双向循环链表
文章目录结构实现完整代码顺序表和链表的区别高速缓存命中率问题结构带头双向循环链表:结构最复杂,一般用在单独存储数据(头尾中间插入删除时间复杂度都为0(1))。实际中使用的链表数据结构,都是带头双向循环链表。另外这个结构虽然结构复杂,但是使用代码实现以后会发现结构会带来很多优势,并且它的实现比单链表还简单。实现头文件->list.h#ifndef LIST_H_#define LIST_H_#include <stdio.h>#include <原创 2022-04-05 00:40:18 · 1612 阅读 · 0 评论 -
链表带环问题
1.1环形链表1.2为什么快指针每次走两步,慢指针走一步可以?1.3为什么快指针每次走三步,慢指针走一步不一定相遇?1.4求链表环的入口点1.1环形链表给定一个链表,判断链表中是否有环。(OJ链接)思路:“快慢指针”------快慢指针,即慢指针一次走一步,快指针一次走两步,两个指针从链表其实位置开始运行,如果链表带环则一定会在环中相遇,否则快指针率先走到链表的末尾时间复杂度:0(n) 空间复杂度O(1)class Solution {public: bool hasCyc.原创 2022-04-04 20:07:22 · 1388 阅读 · 0 评论 -
常见链表OJ题
文章目录1.移除链表元素2.反转链表3.链表的中间节点4.链表中倒数第k个节点5.合并二个有序链表6.链表分割7.回文链表8.相交链表9.复制带随机指针的链表1.移除链表元素删除链表中等于给定值 val 的所有节点。(OJ链接)思想:双指针首先我们维护一个prev和cur指针,prev先指向NULL,cur用于遍历链表prev用于保存cur的前一个节点,当cur->data等于val,然后自己定义一个next指针保存cur->next,这样就可以先free/delete节点,原创 2022-04-02 21:59:24 · 755 阅读 · 0 评论 -
数据结构之链表
文章目录1.1链表的概念及结构1.2逻辑结构和物理结构1.3单链表的优势1.4单链表的实现1.5完整代码1.1链表的概念及结构概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的实际中要实现的链表的结构非常多样,以下情况组合起来就有8种链表结构:1、单向、双向2、带头、不带头3、循环、非循环无头单向非循环链表:结构简单,一般不会单独用来存数据。实际中更多是作为其他数据结构的子结构,如哈希桶、图的邻接表等等。另外这种结构在笔试面试原创 2022-04-01 19:19:33 · 5457 阅读 · 0 评论 -
数据结构线性表之顺序表
文章目录线性表概念顺序表的实现线性表概念线性表的概念线性表(linear list)是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串…线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。线性表的优缺点线性表分为二种形态:静态顺序表:静态顺序表跟数组一样,元素数量是固定不变的动态顺序表:动态顺序表原创 2022-04-01 14:04:23 · 781 阅读 · 0 评论 -
时间复杂度和空间复杂度
文章目录1.1什么是时间复杂度和空间复杂度?算法效率算法效率分为二种,第一种为时间效率,第二种是空间效率。时间效率被称为"时间复杂度",空间效率被称为"空间复杂度"。时间复杂度主要衡量一个算法的运行速度,而空间复杂度衡量的是一个算法所使用的额外空间在计算机发展的早期,计算机的存储容量很小。所以对空间复杂度很是在乎。但是经过计算机行业的迅速发展,计算机的存储容量已经达到了很高的程度。所以我们如今已经不需要再特别关注一个算法的空间复杂度1.2时间复杂度的概念时间复杂度的定义:在原创 2022-04-01 12:01:34 · 131 阅读 · 0 评论 -
c语言关键字
目录auto(自动变量)register(寄存器)auto(自动变量)注:局部变量,自动变量,临时变量,都是一样的,统称局部变量。c语言中auto关键字是用来修饰自动变量的,是C语言中应用最广泛的一种类型。在程序内定义的局部变量,如果没有被声明为其他类型的局部变量都是自动变量。可以得出结论:没有被auto修饰的局部变量都是自动变量。//举例#include <stdio.h>auto int a = 0; //报错!全局变量不能被auto修饰int main(){原创 2021-10-25 12:06:35 · 1352 阅读 · 17 评论