精华内容
下载资源
问答
  • 算法的概念 算法的五大特性

    算法的概念

    在这里插入图片描述

    算法的五大特性

    在这里插入图片描述

    我现在获取当前的环境温度

    1,买个电子的温度计,写程序来读这个电子数据。

    2,GPS,获取当地的环境环境,通过人口密度,等等计算出温度。

    3,人工智能语音识别程序,专门监听与温度相关的词,天气预热播报,抓取捕捉声音,人类沟通讨论到温度相关的东西时,语音识别抓取,最终转为需要的温度

    展开全文
  • 我叫《数据结构与算法》,是计算机世界的四大基石之一。 想来我应该是惹人怜爱的吧(认真脸),因为我仿佛听到了无数个初入计算机世界的同学的呐喊声(????)。 我作为一门简单学科,看到有很多的在半途弃我而去,我...

    我叫《数据结构与算法》,是计算机世界的四大基石之一。

    想来我应该是惹人怜爱的吧(认真脸),因为我仿佛听到了无数个初入计算机世界的同学的呐喊声(😏)。

    我作为一门简单学科,看到有很多的在半途弃我而去,我很是痛心疾首。于是,委托这位靓仔将我蕴藏的知识传播出去,让更多的人享受学习数据结构与算法的快乐。

    咳咳~言归正传……

    基本概念

    首先我来自我拆解一下。请跟我读:数据、结构、算法

    没错,正是这三部分构成了我。这可能和你的认知不同,以为我是由数据结构和算法够成的吧?

    别急,请听我细细道来。

    1. 何为数据?

    数据,是构成我的基石,没有数据,我就没有用武之地。 更夸张的说,没有数据,整个计算机世界可能都没了用武之地。

    因为,数据是信息的载体。人类能够识别的数据,放到计算机世界中,不经过输入设备的转换,是无法被识别的。这种能被计算机识别的信息就叫做数据

    比如,在Mysql数据库中,存储着这样一张数据表。

    姓名年龄性别
    23
    李四22

    在我这里,诸如“姓名、年龄、性别”这样的表头属性被称作是数据项,而这些数据项构成了数据元素;最重要的是,数据元素是构成数据的基本单位

    这里还有一个数据对象的概念,什么是数据对象?数据对象就是具有相同性质的数据元素的集合,且是数据的一个子集。那么在上述表格中就表示为“法外狂徒张三、23、男”和“李四、22、女”这样的集合。

    当然,这些内容可以由更为简明的集合表示:

    FdjiwJ

    1. 何为数据结构?

    数据结构是数据相互之间存在的一种或者多种特定关系的数据元素的集合。

    这么说你可能不是很明白,打个比方:

    • 一对恋人,他们就是一种一对一的关系,这是一种从逻辑上讲的关系,当然,排除海王这样的……
    • 教师与学生,明显是多对一的关系,一个老师可以教很多学生

    上述的这两种情况,都是从逻辑上讲的,你肯定知道,还有其他种类的数据结构。

    事实上,总共有三种数据结构,被我们称作是数据结构的三要素

    • 逻辑结构
    • 存储结构
    • 数据运算

    数据结构三要素

    1. 数据的逻辑结构

      数据的逻辑结构,按照字面意思理解就是数据元素之间的逻辑结构。你可以这样想,逻辑结构就是一种表面上的结构,表示着表面上人与人的逻辑关系。比如说一对恋人,男对女,这就是一种逻辑结构。

      vcror6

    逻辑结构分为两种关系:

    • 线性关系
    • 非线性关系

    所谓线性关系,就是诸如一对情侣这种一对一的关系,在数据结构中,线性表、栈和队列、串、数组、广义表都属于这种一对一的线性关系。

    非线性关系是如一对多、多对一、多对多等的这种关系。比如前面举的例子教师与学生,典型的一对多关系。满足这种关系的数据结构有:集合、树、图。你可能会说,明明集合既不是一对一,也不是一对多。

    是的,集合比较特殊。我们认为,集合中的数据元素,除了同属于一个集合外就没有其他的任何关系了,所以这也是一种非线性关系。

    aRBVlx

    1. 数据的存储结构

    看到存储你会想到什么?硬盘、内存等存储介质,对吧?

    实际上,存储结构说白了就是数据在计算机中的表示,即物理地址

    包括数据元素的表示数据关系的表示

    数据元素的表示,就是指数据在计算机中的地址;而数据关系的表示,就是表示数据之间有何种关系。

    人们为了合理利用计算机的存储空间,研究出了四种存储方式:

    • 顺序存储
    • 链式存储
    • 索引存储
    • 散列存储

    顺序存储是最简单的一种存储方式,你只需要了解:**数据元素的逻辑关系就是其存储关系。**最简单的例子是顺序表,顺序表是连续空间上的一组元素。也就是说,逻辑上相邻的两个数,在存储地址上也相邻。这种存储方式,优点和缺点都很明显:

    • 优点:能够实现随机存取,也就是说,存取可以任意指定位置,不必遍历
    • 缺点:只能使用相邻的一片存储空间,也就是说存储空间可能成为限制,也许会产生大量的数据碎片

    链式存储最为典型的代表就是单链表吧,从逻辑上看,单链表就像是一个由表头拉着的长锁链,但是其数据元素的具体位置是随机的,全部由指针指示存储位置。

    1gqA5O

    • 优点:不会出现碎片,能够充分利用所有存储单元
    • 缺点:每个元素因为存储指针而占用额外的存储空间,且只能实现顺序存取,即遍历

    索引存储可能是最快的存储结构。我们可以把索引想象成PDF电子书的目录,有了目录,我们找相关内容肯定是十分简单的。索引存储是在存储数据元素的时候,同时建立数据元素的目录,这样就能快速检索了。

    • 优点:检索速度快
    • 缺点:附加索引表额外占用空间,增删数据时要修改索引表,花费更多时间

    散列存储又称为哈希存储(HASH)。这种存储结构比较讨巧,是通过公式来计算数据真正的存储位置。比如说,我要存储数据1,公式是y=x+5,y表示存储地址,那么1就会被存放到位置6。当然,实际应用中计算公式肯定不会这么草率。

    • 优点:检索、增删结点的操作都很快
    • 缺点:若散列函数不好,则出现元素存储单元冲突(两个数据元素计算的地址一样),解决冲突会额外占用时间与空间
    1. 数据运算

    数据运算包含两部分内容,即数据运算的定义和实现。

    数据运算的定义是针对逻辑结构来讲的,指出了运算的功能。

    数据运算的实现是针对存储结构来讲的,指出了运算的具体实现步骤。

    数据运算这个时候是在是没啥可细说的,留待日后。

    算法的五大特征

    在说算法的五大特征之前,我们需要弄明白算法的定义:所谓算法,就是对特定问题的求解步骤的描述。

    也就是说,算法是用来解决问题的,一个算法的执行,必然能够有结果,且这个结果符合我们预期的要求。

    算法有五大特征,分别为:

    • 有穷性
      • 必须在执行有穷步骤后结束,且每一步都在有穷时间内完成。所以说,无限执行的算法是错误的,是不能被称作算法的。所以,写递归函数的时候千万当心。
    • 确定性
      • 每条指令必须有确切的含义,相同的输入只能得出相同的输出。即算法中不能出现含糊不清的表述,也不能出现两次相同输入,执行同一算法出现不同的结果的情况。
    • 可行性
      • 算法描述的操作都可以通过已经实现的基本运算执行有限次数实现。不能实现的算法要他何用?
    • 输入
      • 有零个或多个输入,注意,算法是可以没有输入的,但是必须有输出。
    • 输出
      • 有一个或多个输出,不能没有输出,没有输出的算法是错误的。

    感谢各位阅读!以上就是这篇文章的全部内容啦!

    写在最后

    关注微信公众号:最高权限比特流。

    1587813927260355

    回复1001,获取《数据结构的三大要素、五大特征》的思维导图,据说思维导图很Diao哦!

    eG0VF9

    展开全文
  • 2020王道操作系统,2020王道数据结构,2020王道计算机网络,2020王道计算机组成原理pdf合集 资料链接: https://shimo.im/docs/QCgdKCTpypjHdhXg/ 一年又一年,参加计算机考研的大军越来越多,408到底有多难,初试...

    2020王道操作系统,2020王道数据结构,2020王道计算机网络,2020王道计算机组成原理pdf大合集
    资料链接:
    https://shimo.im/docs/QCgdKCTpypjHdhXg/
    一年又一年,参加计算机考研的大军越来越多,408到底有多难,初试该如何准备,复习到现在这个阶段了,我要怎么继续下去。
    一般情况下,计算机统考408想考130/140分左右的高分还是比较难的。
    但个人觉得,考个110/120左右的分数,并不太难。
    都是用相同的资料,最后的考分千差万别,主要还是复习方法的问题。
    对于想考高分的同学,只寄希望于辅导书(走捷径),脱离教材,不扎实打基础是不可行的,理解也很难很深刻。试想王道单科书,每本都比对应的教材要薄,而且还有一半以上的内容是习题及解析,讲解部分只能是以知识总结和归纳为主。
    所以,并不建议复习只看辅导书,结合教材打好基础是必须的。
    个人建议专业课复习4-5轮:
    第一轮 以教材为主,打基础,另外可以做做王道书上的选择题,答案写在纸上,书上不要留下痕迹。一般教材的课后题就不用做了,不是考研试题的风格。
    第二轮 以王道为主,教材为辅,选择题和大题都要做,重点难点的地方做标记,做错了的题要标记好,思考为什么会出错,也建议做一做笔记,作为以后查漏补缺总结之用,这一轮感觉是真正对关键知识点才建立起理解。
    第三轮 以王道为主,基本可以脱离教材,这一轮是熟能生巧的过程,重点难点在这一轮一定要仔细琢磨思考,以前做错的题还有可能还会出错的,不然可以试试看。
    第四轮 是第三轮复习的加速版,是把书读薄的过程,其实每一轮复习都会比上一轮要快,而且会理解得更深刻。这一轮特别注意的是重点难度,以及以前的错题,多做综合大题。
    第五轮 基本就是查漏补缺和看看之前总结的笔记之类的了(考前20天左右),这一轮其实也不算是一轮吧,考前半个月左右估计也不太建议去学新或难的知识点,而应以查漏补缺为主。
    复习的过程中,一定要做到真正的沉下去,多动脑子 多思考。
    另外,现在越来越多的学校考研专业课改为自主命题,降低了计算机考研的门槛和难度。比如,有些学校只考C语言,这样专业课的区分度很低,导致高分扎堆。
    但即便是考上了的同学,特别是本科跨专业的,建议在考后好好学习“数据结构、操作系统、组成原理、计算机网络”这四门计算机专业本科最核心的专业基础课程;此外还建议在开学前积极提升自己的编码能力、以及增加算法知识方面的储备,尽量缩短自己与科班生的差距。

    展开全文
  • 数据结构顺序表基本操作(C/C++实现)

    千次阅读 多人点赞 2019-10-22 23:23:01
    数据结构顺序表基本操作(C/C++实现) 涉及基本运算 初始化顺序表L 依次插入abcde元素 输出顺序表L 输出顺序表L的长度 判断顺序表L是否为空 输出顺序表L的第3个元素 输出元素a的位置 在第4个元素位置上插入f元素 ...

    数据结构顺序表基本操作(C/C++实现)

    注意:本代码为了测试运行默认含有操作所需数据,如有需要可自己增删改相关数据

    涉及基本运算

    1. 初始化顺序表
    2. 依次插入元素
    3. 输出顺序表
    4. 输出顺序表的长度
    5. 判断顺序表是否为空
    6. 输出顺序表的第n个元素
    7. 输出元素x的位置
    8. 在第n个元素位置上插入x元素
    9. 输出顺序表
    10. 删除顺序表的第n个元素
    11. 输出顺序表
    12. 释放顺序表

    GitHub地址(包含.cpp文件和可执行程序exe)

    我的数据结构GitHub地址

    源代码(经VS2015、devC++编译器运行通过)

    #include "stdio.h"    
    #include "stdlib.h"   
    #include "io.h"  
    #include "math.h"  
    #include "time.h"
    
    #define OK 1
    #define ERROR 0
    #define TRUE 1
    #define FALSE 0
    
    #define MAXSIZE 20 /* 存储空间初始分配量 */
    
    typedef int Status;          /* Status是函数的类型,其值是函数结果状态代码,如OK等 */
    typedef char ElemType;        /* ElemType类型根据实际情况而定,这里假设为int */
    
    
    Status visit(ElemType c)
    {
    	printf("%c ", c);
    	return OK;
    }
    
    typedef struct
    {
    	ElemType data[MAXSIZE];        /* 数组,存储数据元素 */
    	int length;                                /* 线性表当前长度 */
    }SqList;
    
    /* 1.初始化顺序线性表 */
    Status InitList(SqList *L)
    {
    	L->length = 0;
    	return OK;
    }
    
    /* 2.初始条件:顺序线性表L已存在,1≤i≤ListLength(L), */
    /* 操作结果:在L中第i个位置之前插入新的数据元素e,L的长度加1 */
    Status ListInsert(SqList *L, int i, ElemType e)
    {
    	int k;
    	if (L->length == MAXSIZE)  /* 顺序线性表已经满 */
    		return ERROR;
    	if (i<1 || i>L->length + 1)/* 当i比第一位置小或者比最后一位置后一位置还要大时 */
    		return ERROR;
    
    	if (i <= L->length)        /* 若插入数据位置不在表尾 */
    	{
    		for (k = L->length - 1; k >= i - 1; k--)  /* 将要插入位置之后的数据元素向后移动一位 */
    			L->data[k + 1] = L->data[k];
    	}
    	L->data[i - 1] = e;          /* 将新元素插入 */
    	L->length++;
    
    	return OK;
    }
    
    
    /* 3.初始条件:顺序线性表L已存在 */
    /* 操作结果:依次对L的每个数据元素输出 */
    Status ListTraverse(SqList L)
    {
    	int i;
    	for (i = 0; i<L.length; i++)
    		visit(L.data[i]);
    	printf("\n");
    	return OK;
    }
    
    /* 4.初始条件:顺序线性表L已存在。
    操作结果:返回L中数据元素个数 */
    int ListLength(SqList L)
    {
    	return L.length;
    }
    
    /* 5.初始条件:顺序线性表L已存在。
    操作结果:若L为空表,则返回TRUE,否则返回FALSE */
    Status ListEmpty(SqList L)
    {
    	if (L.length == 0)
    		return TRUE;
    	else
    		return FALSE;
    }
    
    /* 6.初始条件:顺序线性表L已存在,1≤i≤ListLength(L) */
    /* 操作结果:用e返回L中第i个数据元素的值,注意i是指位置,第1个位置的数组是从0开始 */
    Status GetElem(SqList L, int i, ElemType *e)
    {
    	if (L.length == 0 || i<1 || i>L.length)
    		return ERROR;
    	*e = L.data[i - 1];
    
    	return OK;
    }
    
    /* 7.初始条件:顺序线性表L已存在 */
    /* 操作结果:返回L中第1个与e满足关系的数据元素的位序。 */
    /* 若这样的数据元素不存在,则返回值为0 */
    int LocateElem(SqList L, ElemType e)
    {
    	int i;
    	if (L.length == 0)
    		return 0;
    	for (i = 0; i<L.length; i++)
    	{
    		if (L.data[i] == e)
    			break;
    	}
    	if (i >= L.length)
    		return 0;
    
    	return i + 1;
    }
    
    
    
    /* 初始条件:顺序线性表L已存在。
    操作结果:将L重置为空表 */
    Status ClearList(SqList *L)
    {
    	L->length = 0;
    	return OK;
    }
    
    
    
    
    
    
    
    /* 10.初始条件:顺序线性表L已存在,1≤i≤ListLength(L) */
    /* 操作结果:删除L的第i个数据元素,并用e返回其值,L的长度减1 */
    Status ListDelete(SqList *L, int i, ElemType *e)
    {
    	int k;
    	if (L->length == 0)               /* 线性表为空 */
    		return ERROR;
    	if (i<1 || i>L->length)         /* 删除位置不正确 */
    		return ERROR;
    	*e = L->data[i - 1];
    	if (i<L->length)                /* 如果删除不是最后位置 */
    	{
    		for (k = i; k<L->length; k++)/* 将删除位置后继元素前移 */
    			L->data[k - 1] = L->data[k];
    	}
    	L->length--;
    	return OK;
    }
    
    void unionL(SqList *La, SqList Lb)
    {
    	int La_len, Lb_len, i;
    	ElemType e;
    	La_len = ListLength(*La);
    	Lb_len = ListLength(Lb);
    	for (i = 1; i <= Lb_len; i++)
    	{
    		GetElem(Lb, i, &e);
    		if (!LocateElem(*La, e))
    			ListInsert(La, ++La_len, e);
    	}
    }
    
    int main()
    {
    
    	SqList L;
    	SqList Lb;
    
    	ElemType e;
    	Status i;
    	int j, k;
    	/*1.初始化*/
    	i = InitList(&L);
    	printf("1.初始化L后:L.length=%d\n", L.length);
    
    	/*2.依次插入abcde*/
    	i = ListInsert(&L, 1, 'e');
    	i = ListInsert(&L, 1, 'd');
    	i = ListInsert(&L, 1, 'c');
    	i = ListInsert(&L, 1, 'b');
    	i = ListInsert(&L, 1, 'a');
    	printf("2.abcde插入执行完毕\n");
    
    	/*3.输出顺序表*/
    	printf("3.在L的表头依次插入a~e后:L.data=\n");
    	ListTraverse(L);
    
    	/*4.顺序表长度*/
    	printf("4.L.length=%d \n", L.length);
    
    	/*5.判空*/
    	i = ListEmpty(L);
    	printf("5.L是否空:i=%d(1:是 0:否)\n", i);
    
    	/*6.输出顺序表L的第三个元素*/
    	GetElem(L, 3, &e);
    	printf("6.第3个元素的值为:%c\n", e);
    
    	/*7.输出顺序表a的位置*/
    	int l = LocateElem(L, 'a');
    	printf("7.返回元素a的位序:%d\n", l);
    
    	/*8.在第4个元素位置上插入f元素*/
    	i = ListInsert(&L, 5, 'f');
    	printf("8.在第4个元素位置上插入f元素执行完毕\n", L.length);
    
    	/*9.输出顺序表*/
    	printf("9.在L的第4个元素位置上插入f元素后:L.data=\n");
    	ListTraverse(L);
    
    	/*10.删除顺序表L的第三个元素*/
    
    	i = ListDelete(&L, 3, &e); /* 删除第j个数据 */
    	if (i == ERROR)
    		printf("删除第%d个数据失败\n", 3);
    	else
    		printf("10.删除第个的元素成功\n");
    
    	/*11.输出顺序表L*/
    	printf("11.输出顺序表\n");
    	ListTraverse(L);
    
    	/*12.释放顺序表*/
    	i = ClearList(&L);
    	printf("释放顺序表执行完毕\n"); 
    	system("pause");
    		return 0;
    }
    
    
    
    
    
    展开全文
  • 李春葆《数据结构》第

    千次阅读 多人点赞 2019-11-12 23:26:26
    李春葆《数据结构》第版 第二章:线性表 实验一:实现顺序表各种基本运算的算法 #include <stdio.h> #include <malloc.h> #define Maxsize 50 typedef char Elemtype; typedef struct {Elemtype data...
  • redis的数据结构原理分析

    万次阅读 多人点赞 2018-11-13 15:51:08
    redis中的数据结构分析 应用场景分析 总结   关于Redis redis是一个开源的使用C语言编写的一个kv存储系统,是一个速度非常快的非关系远程内存数据库。它支持包括String、List、Set、Zset、hash数据...
  • 2018山西专升本数据结构知识点总结

    万次阅读 多人点赞 2018-06-29 19:41:36
    2018山西专升本数据结构知识点总结
  • 图解!24张图彻底弄懂九常见数据结构

    万次阅读 多人点赞 2020-05-24 22:23:36
    数据结构想必大家都不会陌生,对于一个成熟的程序员而言,熟悉和掌握数据结构和算法也是基本功之一。数据结构本身其实不过是数据按照特点关系进行存储或者组织的集合,特殊的结构在不同的应用场景中往往会带来不...
  • Redis的数据结构的底层实现原理

    万次阅读 2021-01-31 02:49:22
    Redis的数据结构的底层实现原理: 1、String底层实现方式:动态字符串sds 或者 long; 2、Hash底层实现方式:压缩列表ziplist 或者 字典dict; 3、List在Redis3.2之前的底层实现方式:压缩列表ziplist 或者 双向...
  • 【高级开发进阶】Redis五大数据结构应用场景落地

    千次阅读 热门讨论 2021-03-03 10:33:56
    数据结构: 字符串string 应用场景: 一,单值缓存: set key value get key 二,对象缓存: set user:1 value(json数据) 说明:一次存入,后面修改不方便,胜在简单 mset user:1:name zhug
  • C语言程序设计第版 谭浩强 第版课后答案

    万次阅读 多人点赞 2019-06-16 00:27:29
    谭浩强 C语言程序设计第版 第4章课后答案 3.求两个正整数m和n,求其最大公约数和最小公倍数。 #include<stdio.h> void main() { int m, n, t, i, a = 1; scanf("%d%d", &m, &n); if (m < n) ...
  • 数据结构知识整理

    万次阅读 多人点赞 2018-07-30 18:50:47
    1.数据结构:是一门研究非数值计算的程序设计问题中计算机的操作对象以及他们之间的关系和操作等的学科。 2.数据结构涵盖的内容: 3.基本概念和术语: 数据:对客观事物的符号表示,在计算机科学中是指所有能...
  • 数据结构KMP算法配图详解(超详细)

    万次阅读 多人点赞 2020-02-18 22:02:42
    KMP算法是我们数据结构串中最难也是最重要的算法。难是因为KMP算法的代码很优美简洁干练,但里面包含着非常深的思维。真正理解代码的人可以说对KMP算法的了解已经相当深入了。而且这个算法的不少东西的确不容易讲懂...
  • 数据结构基础概念篇

    万次阅读 多人点赞 2017-11-14 13:44:24
    数据结构一些概念 数据结构就是研究数据的逻辑结构和物理结构以及它们之间相互关系,并对这种结构定义相应的运算,而且确保经过这些运算后所得到的新结构仍然是原来的结构类型。数据:所有能被输入到计算机中,且能...
  • 什么是数据结构?什么是算法

    万次阅读 多人点赞 2018-05-04 00:35:22
    记得是大一大二的时候学习了数据结构。时间过的好快,现在实现了,现在感觉自己的基础好差很多都不会。欠的帐还是要还的! 什么是数据结构?什么是算法? 呃呃呃呃 哎….不会。 多次参加了MOOC姥姥的数据结构...
  • 数据结构一 (简介)

    千次阅读 多人点赞 2018-07-12 17:09:00
    转载请标明出处: ...本文出自:【openXu的博客】 1、什么是数据结构   数据结构主要学习用计算机实现数据组织和数据处理的方法;...  一个好的程序无非是选择一个合理的数据结构和好的算法,而好的算法...
  • 数据结构—— 一元多项式的加法运算

    万次阅读 多人点赞 2019-09-24 12:01:56
    解决本问题首先要想到的就是怎么把一个乱序输入的二元组按照第二个数的从到小的顺序排列下来,可以这么想,每次要添加一个二元组的时候都要把已经存在的二元组进行一次从头的搜索,查找到一个适当位置,使得二元组...
  • 学习数据数据结构的意义

    千次阅读 2018-12-31 14:09:05
    什么是数据结构,为什么要学习数据结构数据结构是否是一门纯数学课程?它在专业课程体系中起什么样的作用?我们要怎么才能学好数据结构?… 相信同学们在刚开始《数据结构》这门课的学习时,心里有着类似前面几个...
  • 由于文章有点多,并且发的文章也不是一个系列一个系列发的,不过我的文章部分都是围绕着 数据结构 + 算法 + 计算机网络 + 操作系统 + Linux + 数据库 这几个方面发的,为了方便大家阅读,我整理了一波。...
  • 数据结构PTA期末复习题集

    千次阅读 多人点赞 2020-12-03 16:01:56
    数据结构拼题题库第一章绪论判断19GE选择23GE填空13GE第三章 栈和队列判断16选择32填空4 第一章绪论 判断19GE 数据项是数据的最小单位。T 数据元素是数据的最小单位。F 数据的逻辑结构是指数据的各数据项之间的逻辑...
  • 算法 + 数据结构 = 程序
  • 数据结构学习心得

    千次阅读 多人点赞 2018-12-31 14:09:19
    要学好数据结构,有数据结构学习网才行! 首先,恭喜您发现了这个网站:一个神奇的学习数据结构的网站! 其次,感谢您打开这个网页阅读这篇文章,实在太感谢啦! 再次,正在激动中......哽咽了。还是让我先来...
  • ( 8)若二叉树采用二叉链表存储结构,要交换其所有分支结点左、右子树的位置,利用()遍历方法最合适。 A.前序 B.中序 C.后序 D .按层次 答案: C 解释:后续遍历和层次遍历均可实现左右子树的交换 ,不过...
  • 常见的数据结构 单链表结构和顺序存储结构的区别 线性链表 数组和链表的区别 判断疫个链表是否有环,如何找到这个环 单链表和双链表的区别 头指针和头结点的区别 简述KMP算法 栈和队列的区别 栈和队列的相同之处和...
  • Redis数据结构底层实现简析

    千次阅读 2020-08-02 15:23:15
    1、字符串 Redis的字符串是基于C语言的,没有Java这种操作字符串的类库,因此Redis自动封装了一个,为SDS(Simple Dynamic String),SDS中包含了三个属性: len,buf中已经占有的... 摘自: redis的数据结构原理分析
  • 我们可以知道这是一个“图”的着色问题,首先要考虑,为什么可行路线是13条?当然可以通过穷举得出,如果用公式:则是: 或者 因为一条路线必须包括一出一进两个方向 第一种答案的解法: 一、固定E为入口,则有C_4^1...
  • 数据挖掘

    千次阅读 多人点赞 2019-04-16 16:26:36
    数据挖掘其实是一种深层次的数据分析方法。数据挖掘可以描述为:按企业既定业务目标,对大量的企业数据进行探索和分析,揭示隐藏的、未知的或验证已知的规律性,并进一步将其模型化的先进有效的方法。 应用的技术...
  • 数据结构合集链接: 《数据结构》C语言版(严蔚敏版) 全书知识梳理(超详细清晰易懂) 树和二叉树 一.树 树:是N(N≥0)个结点的有限集合,N=0时,称为空树,这是一种特殊情况。在任意一棵非空树中应满足: 有且...
  • 数据结构与算法必知基础知识

    千次阅读 多人点赞 2021-01-06 22:58:12
    原创公众号:bigsai ...此外数据结构也蕴含一些面向对象的思想,故学好掌握数据结构对逻辑思维处理抽象能力有很提升。 为什么学习数据结构与算法?如果你还是学生,那么这门课程是必修的,考研基本也.
  • 数据结构》知识梳理,适合考前复习,高分冲刺。包含大量习题,偷偷告诉你,考试就考这个

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 745,168
精华内容 298,067
关键字:

数据结构的五大特征

数据结构 订阅