![](https://img-blog.csdnimg.cn/fa8d97136c5c4f5bbb1ff605366c30bb.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构
文章平均质量分 77
数据结构知识
Cristiano777.
这个作者很懒,什么都没留下…
展开
-
排序
一、常见排序算法1.冒泡排序法void BubbleSort(int* a, int n){ for (int i = 0; i < n - 1; i++) { int exchange = 0; //优化,如果一趟循环后并没有交换位置,则证明已有序 //不用再进行后面的排序 for (int j = 0; j < n - i; j++) { if (a[j] > a[j + 1]) { exchange = 1; in原创 2022-04-27 21:22:38 · 579 阅读 · 30 评论 -
二叉树
一、树的概念1.树的相关概念节点的度:一个节点含有的子树的个数称为该节点的度; 如上图:A的为6 叶节点或终端节点:度为0的节点称为叶节点; 如上图:B、C、H、I...等节点为叶节点 非终端节点或分支节点:度不为0的节点; 如上图:D、E、F、G...等节点为分支节点 双亲节点或父节点:若一个节点含有子节点,则这个节点称为其子节点的父节点; 如上图:A是B的父节点 孩子节点或子节点:一个节点含有的子树的根节点称为该节点的子节点; 如上图:B是A的孩子节点.原创 2022-04-18 15:37:05 · 1359 阅读 · 27 评论 -
栈和队列
一、栈1.栈的概念及结构栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。 压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。 出栈:栈的删除操作叫做出栈。出数据也在栈顶。遵守 后进先出 原则2.栈的实现栈的实现一般可以使用数组或者链表实现,相对而言数组的结构实现更优一些。因为数组在尾上插入数据的代价比较小。原创 2022-04-01 15:57:31 · 154 阅读 · 16 评论 -
顺序表和链表
一.顺序表1.概念及结构顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。顺序表可分为:1. 静态顺序表:使用定长数组存储元素。 2. 动态顺序表:使用动态开辟的数组存储。2.动态顺序表的实现SeqList.h#pragma once#include <stdio.h>#include <assert.h>#include <string.h>#inc原创 2022-03-28 15:46:54 · 1288 阅读 · 27 评论 -
算法的时间复杂度和空间复杂度
衡量一个算法的好坏,一般是从时间和空间两个维度来衡量的,即时间复杂度和空间复杂度。 时间复杂度主要衡量一个算法的运行快慢,而空间复杂度主要衡量一个算法运行所需要的额外空间。一、时间复杂度int function(int n){ int count = 0; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { count++; } } for (int k = 0; k <...原创 2022-03-09 22:01:00 · 657 阅读 · 28 评论