![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
ZqandCr
这个作者很懒,什么都没留下…
展开
-
【数据结构】平衡二叉树视频
平衡二叉树视频把插入时候的旋转讲解的非常详细了。所谓LL、LR、RR、RL旋转不是对旋转过程的描述,而是对不平衡状态的描述。平衡二叉树首先是一棵二叉排序树。删除的时候有左右孩子就拿前驱结点或者后继结点来顶,然后调整平衡。叶子节点就直接删除,然后调整平衡。...原创 2020-06-20 01:32:09 · 191 阅读 · 0 评论 -
排序算法特点分析
排序法平均时间最差情况稳定性额外空间备注直接插入O(n2)O(n^2)O(n2)O(n2)O(n^2)O(n2)稳定O(1)大部分已排序时较好shellO(n1.3)O(n^{1.3})O(n1.3)O(n2)O(n^2)O(n2)不稳定O(1)时间复杂度计算复杂,网上有多种说法直接选择O(n2)O(n^2)O(n2)O(n2)O(n^2)O(n2)不稳定O(1)时间复杂度与初始序列无关堆排序O(nlogn)O(nlogn)O...原创 2020-06-17 18:11:57 · 133 阅读 · 0 评论 -
图的一些常用小函数
一、图的数据结构图有两种存储方式,一种是用矩阵存,一种是用邻接表存。矩阵存的数据结构:typedef struct Graph{ int edges[maxsize][maxsize]; int n,e; //顶点数和边数 }Graph;邻接表存的数据结构://邻接表存储typedef struct node{ node *next;}node; //邻接表右边的节点们typedef struct vnode{ node* firstnode; int data; }vn原创 2020-06-13 16:16:03 · 272 阅读 · 0 评论 -
二叉树的一些实用小函数
二叉树相关定义请参考本人另一篇博客:二叉树的数据结构(二叉树采用二叉链表存储)一、计算节点数目//计算节点数量函数int count(treenode *L){ if(L==NULL)return 0; //左子树节点加右子树节点加1 return count(L->ltree)+count(L->rtree)+1;} 二、计算叶子结点数目//计算叶子节点数目int count_ye(treenode *L){ if(L==NULL)return 0; if(L-&原创 2020-06-09 19:04:00 · 482 阅读 · 0 评论 -
层次建树和输出
用一维数组创建完全二叉树,并打印二叉树的结构typedef struct treenode{ treenode *ltree; treenode *rtree; int data; }treenode; 建立树的时候要利用完全二叉树的相关性质//层次建树,利用树的序号规律,第i个节点的左孩子节点序号是2*i+1,右孩子节点序号是2*i+2.(序号从0开始) void fun1(treenode *L,int a[],int n,int i){ L->data=a[i]; L原创 2020-05-26 22:40:46 · 356 阅读 · 0 评论 -
全排列--从for循环一步步到函数递归
题目: 设计一个递归算法,求n个不同字符的所有全排列先上最终代码。#include <iostream>#include <algorithm>#include<string.h>using namespace std;void printa(char a[]){ int i=0; while(a[i]!='\0'){ cout<<a[i]<<" "; i++; } cout<<endl;}void a原创 2020-05-09 12:48:28 · 604 阅读 · 4 评论 -
数据结构错题集
一这里的各项操作应该不包括遍历,记忆:哈希用空间换时间(和恶魔做了交易),所以哈希全是1(一般不讨论哈希的遍历),平衡树很平衡,查找、插入、删除全是log,数组链表可以自己推。二...原创 2020-02-25 00:04:08 · 211 阅读 · 0 评论