数据结构与算法
文章平均质量分 60
记录数据结构笔记。
小太阳的向日葵
普通的Coder,欢迎与您的交流。
展开
-
结构体指针做参数时注意的问题
结构体指针的使用,传入参数时需要注意,容易疏忽。原创 2022-09-27 01:12:12 · 501 阅读 · 0 评论 -
保姆级别带你手撕红黑树BRTree
一、前言本文是自己在学习过程中,记录下的一些总结,以便日后复习,同时分享出来,方便与更多人学习交流,共同进步。鄙人水平有限,若有误,请不吝赐教😁😁😁。二、从头介绍红黑树树是一种二叉树,比较常用的数据结构,如果对二叉树不是很熟悉或者有遗忘的朋友,可以看看我之前做的笔记。第一篇介绍二叉树的基础知识:数据结构与算法 树_振予的博客-CSDN博客第二篇介绍二叉搜索树和二叉平衡树树:数据结构与算法 查找_振予的博客-CSDN博客三、红黑树介绍每当我们打开电脑查找一个文档、在教务系统输入我们原创 2022-04-20 12:33:11 · 1655 阅读 · 3 评论 -
数据结构与算法 排序之代码实现
一、冒泡排序从前往后遍历,每次相邻的两个比较,把大的往后交换,每趟都会把当前序列最大的归位,代码如下:#include<iostream>using namespace std;const int N = 1e4 + 10;int a[N];void maopao_sort(int n){ for(int i = n - 1; i >= 0;i --){ // i控制趟数 for(int j = 0;j < i;j ++){ // j原创 2022-01-08 14:35:31 · 716 阅读 · 0 评论 -
数据结构与算法 排序
一、相关定义二、排序前的存储结构三、插入排序1、基本介绍2、直接插入排序上面的方法,每次都需要判断一下j>=0,我们可以使用哨兵省去该判断操作。如下图,让第一个位置空出来,放置每次即将被插入的元素。3、折半插入排序4、希尔排序主程序:四、交换排序1、冒泡排序2、快速排序主程序:子程序:...原创 2022-01-04 07:53:13 · 888 阅读 · 0 评论 -
数据结构与算法 查找
一、线性表的查找1、顺序查找2、折半查找这里有两种实现方法,一种是迭代,一种是递归。2.1 迭代方法#include<stdio.h>#define N 10typedef struct{ int data[N]; int length;}nums;int Seach_bin(nums a, int key){ int left = 0; int right = a.length; int mid; while(left &l...原创 2022-01-03 00:28:50 · 455 阅读 · 0 评论 -
数据结构与算法 图
一、定义图是一种比较常用的数据结构,有许多定义需要理解,下面一一介绍。图:G = (V, E) Graph = (Vertex, Edge) V : 顶点(数据元素)的有穷非空集合; ...原创 2022-01-02 00:03:13 · 586 阅读 · 0 评论 -
数据结构与算法 树
一、定义树是一种常用的一种结构,下面看看有哪些关于树的定义。根结点、孩子结点、兄弟结点、叶子结点、内部结点、节结的度、树的度,如下图:满二叉树:一棵深度为k且有个结点的二叉树称为满二叉树。其特点:1、每一层上的结点数都是最大结点数(即每层都满),2、叶子结点全部在最底层。如下图:完全二叉树:深度为k的具有n个结点的二叉树,当且仅当其每一个结点都与深度为k的满二叉树中编号为1~n的结点一一对应时,称之为完全二叉树。如下图:二、性质(二叉树性质)二叉树(每个节点最多有两个孩子原创 2021-12-29 23:03:29 · 401 阅读 · 0 评论 -
数据结构与算法 KMP算法
假设有两个字符串S、T,S为长串,T为短串,寻找T在S中出现的位置。串的定义可以分为顺序串和链式串。此处以顺序串为例,结构定义如下(此处我们从数组位置1开始存储):#include<stdio.h>#include<stdlib.h>#include<string.h>#define MAXLEN 255typedef struct { // 串的顺序存储结构 char ch[MAXLEN + 1]; // 存储串的一维数组 i原创 2021-12-27 22:04:32 · 667 阅读 · 0 评论 -
数据结构与算法 队列
目录一、前言二,结构定义三、相关操作一、前言队列作为一种常用的结构,可以用顺序队列和链式队列实现。1、顺序队列2、链式队列二,结构定义1、顺序队列#include<stdio.h>#include<stdlib.h>#define MAXSIZE 100typedef struct { // 队列的顺序表示 int * base; // 初始化的动态分配存储空间 int front; // 头指针 int re原创 2021-12-27 19:47:29 · 533 阅读 · 0 评论 -
数据结构与算法 栈
目录一、前言二、结构定义三、相关操作一、前言栈作为一种常用的结构,可以用顺序栈和链栈实现。1、顺序栈(两个指针分别指向栈底、栈顶)2、链式栈(和单链表一样,只不只能从链表头部进行)这两种存储方式各有优略,我们可以根据实际情况选择对应的存储方式。 下面,着重分析两种存储的定义和相关操作。二、结构定义1、首先使用顺序存储的方式定义一个栈的结构体,有栈底栈顶指针,和栈的大小。#include<stdio.h>#include<stdlib.原创 2021-12-27 16:59:09 · 542 阅读 · 0 评论 -
数据结构与算法 线性表
目录一、前言二、定义(顺序表与单链表)三、单链表相关操作一、前言线性表有两种存储方式,一是顺序存储,二是链式存储。1、顺序存储2、链式存储这两种存储方式各有优略,我们可以根据实际情况选择对应的存储方式。 下面,着重分析两种存储的定义和相关操作。二、定义(顺序表与单链表)实际中,我们会遇到各种场景,比如学生的信息存储或者图书馆书籍存储,这些需要用到数据结构。那么下面直接以图书馆的书籍为例子进行定义。1、首先使用顺序存储的方式定义了书籍的结构体,下面定义静态.原创 2021-12-22 20:19:10 · 480 阅读 · 0 评论 -
结构体指针
一、结构体指针结构体指针定义与赋值:#include<stdio.h>#include<stdlib.h>typedef struct struct_test{ int a; int b;}test;int main(){ test s; // 定义了一个结构体变量 s.a = 1; // 给变量的成员赋值 test* ss = &s; // 定义了一个结构体指针变量,并指向s ss->a = 92;原创 2021-12-22 18:46:08 · 576 阅读 · 0 评论