- 博客(33)
- 资源 (7)
- 收藏
- 关注
原创 学《数据结构》越学越聪明--第七章》》》树和二叉树2
二叉树的概念二叉树的定义二叉树是有限的结点集合。这个集合或者是空或者由一个根节点和两颗互不相交的称为左子树和右子树的二叉树组成二叉树的五种基本形态:空树只有根结点左子树为空树右子树为空树左右子树不为空树特殊的二叉树满二叉树所有分支结点都有双分支结点;且叶结点都集中在二叉树的最下层。完全二叉树最多只有下面两层的结点的度数小于2且最下面一层的结点依次排列在最左侧的位置上...
2022-02-12 19:07:26
719
原创 学《数据结构》越学越聪明--第七章》》》树和二叉树1
树树的概念树的定义树形式化定义:T={D,R}。D是包含n个节点的有限集合(你>=0)。当n=0时为空树,否则关系R满足以下条件:有且仅有一个节点d0∈D,它对于关系R来说没用前趋节点,节点d0称作树的根节点除根节点外,每个节点有且仅有一个前趋节点D中每个节点可以有零个或多个后继节点树的递归定义:树是由n(n>=0)个节点组成的有限集合(记为T)。其中:如果n=0,它是一棵空树,这是树的特例如果n>0,其中存在一个唯一节点作为树的根节点(root),其余节点可分为
2022-02-10 12:15:37
675
原创 学《数据结构》越学越聪明--第六章》》》数组与广义表一、数组
数组 数组的概念 从逻辑结构上看,一维数组A是n(n>1)个相同类型数据元素a1、a2、......、An构成的有限序列,其逻辑表示为: 从A=(a1、a2、....、An) 其中,a1(1=一个m行m列的二维数组A可以看作是每个数据元素都是相同类型的一维数组的一维数组。由此看出,多维数组是线性表的推广数组的抽象数据类型+运算描述数组的基本运算如下:Value(A,index1,index2,.....,indexD)即A(index,index2,...,ind..
2022-01-07 18:56:26
709
原创 数据库原理与应用------->>>一、数据库系统概述
数据库系统概述 数据库管理技术发展 在计算机问世以前,对数据的管理只能是机械或手工的方式,有了计算机后数据在计算机中如何管理的呢? 数据管理的三个阶段 人工管理 文件系统管理 数据库系统管理 人工管理时间:20世纪50年代以前数据处理方式:批处理用处:计算机主要用于科学计算硬件:外部存储设备只有磁带、卡片和纸带等软件:没有出现操作系统,无数据管理方面的软件数据管理特点 数据面向应用数据需要应用程序自己设计、说明和管理,程序员在自己编写程序..
2021-12-28 16:04:12
551
原创 学《数据结构》越学越聪明--第四章》》》串
串 串的基本概念串(或字符串)是由零个或多个字符组成的有限序列串中所含字符的个数称为该串的长度(或串长),含零个字符的串称为空串。相等串当且仅当两个串的长度相等并且各个对应位置上的字符串都相同时,这两个串才是相等的子串一个串中任意个连续字符组成的子序列(含空串)称为该串的子串。真子串是不包含自身的所以子串串抽象数据类型=逻辑结构+基本运算串的几种基本运算如下:StrAssign(&s,cstr):将字符串常量cstr赋给串s,即生成其值等于cstr的串sStrC..
2021-12-20 19:39:21
1215
原创 学《数据结构》越学越聪明--第三章》》》栈和队列 总结
总结栈栈是一种只能从一端插入的线性表,先进后出表1,2,3,---,n通过一个栈的出栈序列个数?一个大小为n的顺序栈,最多只能进行n次进栈操作嘛?顺序栈只能将栈底设置在data[0]端吗?共享栈队列先进先出表 1,2,3,---,n通过一个队列的出队序列个数?环形队列解决了假溢出问题,任何情况下都使用环形队列吗?如果需要多个队列,可以像共享栈一样设置共享队列吗?如果需要使用10给队列,如何设计?栈和队列的应用...
2021-12-15 18:53:23
1188
1
原创 学《数据结构》越学越聪明--第三章》》》栈和队列(二)队列
队列队列的定义栈是一种只能从一端插入的线性表。队列只能选取一端进行插入操作,另一个端点进行删除操作队列的概念插入的一端称为队尾(rear)删除的一端称为队头或队首(front)向队列中插入新的元素称为进对或入队,新元素进队后成为新的队尾元素。向队列中删除元素称为出队或离队,元素出队后其后继结点称为新的队首元素队列的特点是先进先出,又把队列称为“先进先出表”抽象数据类型=逻辑结构+基本运算(运算描述)栈的几种基本运算如下:InitQueue(&q)初始化队列。构造一个
2021-12-14 20:05:59
716
原创 学《数据结构》越学越聪明--第三章》》》栈和队列(一) 栈
栈栈的概述栈是一种只能从一端插入的线性表只能在同一个端进行插入和删除栈的几个概念允许插入和删除的一端称为栈顶另一端称为栈底栈中没有元素时称为空栈栈的插入操作通常称为进栈或入栈栈的删除操作通常称为出栈或退栈栈的特点:栈的主要特点是后进先出即后进栈的元素先出栈。栈也被称为后进先出表设一个栈的输入序列为a,b,c,d,则借助一个栈所得到的输出序列不可能是_D__A,c,d,b,a B,d,c,b,a &nbs
2021-12-12 20:56:04
1511
原创 学《数据结构》越学越聪明--第二章》》》线性表之链表(单)
线性表的链式存储结构链表的概述结点不仅包含本身的信息还包含元素之间逻辑关系的信息在链表存储结构中每个结点用于存储线性表的一个元素,每个结点不仅包含所存元素本身的信息,而且包含元素之间逻辑关系的信息,即前驱结点包含后继结点的地址信息,称为指针域链表中数据元素可以存储在内存中被占用的任意位置链表由多个结点组成,这些结点在地址上可以是连续的,也可以不连续。头指针链表中的一个结点的存储位置称为头指针,如果链表带有头结点,那么头指针为头结点的地址,如果链表不带头结点,头指针为开始结点的地址。通常用头指针来标
2021-11-17 17:11:51
537
原创 学《数据结构》越学越聪明--第二章》》》线性表之顺序表
顺序表把线性表中的所有元素按照其逻辑顺序,依次存储到从计算机存储器中指定存储位置开始的一块连续的存储空间中特点:不增加存储逻辑关系的空间开销,方便存储无需为表示元素之间的逻辑关系而增加额外的存储空间,可以方便存储表中的任意一个元素占用大片连续空间,插入和删除时复杂顺序表要求占用一整片连续的空间,而且插入和删除元素时需要移动大量的元素顺序表的基本运算实现一旦采用顺序表存储结构就可以利用c/c++语言实现线性表的各种基本运算。为了单,假设顺序表ElemType为int类型:typedef in
2021-11-16 16:04:45
580
原创 学《数据结构》越学越聪明--第二章》》》线性表
线性表线性结构的概念:元素之间的关系:元素之间存在一对一的关系特点:开始元素和后继元素都是唯一的,除此之外其余元素都有且仅有一个前驱元素和后继元素线性表的概念:线性表是一个具有相同特性的数据元素的有限序列特性:一致性:一个线性表中所有数据元素之间的性质相同有穷性:一个线性表中的元素是有限的序列性:一个线性表中所有元素之间的位置是线性的线性表所含元素的个数叫做线性表的长度,用n表示,当n=0时,表示线性表是一个空表,不包含任何元素线性表是客观事物的抽象线性表的存储结构:有顺序
2021-11-14 22:32:10
849
原创 绪论简答题
绪论练习题算法的时间复杂度取决于?答:问题规模和待处理数据的初态计算机算法指的是解决问题的步骤序列,它必须具备哪三种特性?答:确定性、可执行性、有穷性从逻辑结构上可以将数据结构分为哪两大类?答:线性结构和非线性结构对给定的n个元素,可以构造出的逻辑结构有哪些?答:集合、线性结构、树形结构、图形结构数据结构中评价算法的两个重要指标是?答:算法的时间复杂度和空间复杂度数据结构是研讨数据的什么?以及他们之间安定相互关系,并且与这种结构定义相应的什么?设计出相应的什么?答:逻辑结
2021-10-27 13:41:02
1405
原创 学《数据结构》越学越聪明--第一章》》》绪论三
算法分析算法分析就是分析算法占用计算机资源的多少CPU时间–>时间性能分析内存空间–>空间性能分析目的:分析算法的时空效率以便改进算法性能算法分析方式:事后统计法:编写相对应程序,统计其执行时间事前统计法:撇开上述因素,认为算法的执行时间是问题规模n的函数 算法时间复杂度分析 一个算法是控制结构(顺序、分支、循环三种)和原操作(指固有数据类型的操作,比如++、--、*、/、+、-等)构成的。 在以下算法中,语句1、3、5、6就是原操作:void fun(int a
2021-10-14 18:30:47
139
原创 学《数据结构》越学越聪明--第一章》》》绪论二
算法及其描述1.2.1什么是算法对特定问题求解的一种描述,它是指令的有限序列算法的重要性有穷性:在有穷步之后结束,算法能够停机确定性:无二义性可行性:可通过基本运算有限次执行来实现,也就是算法中每一个动作能够被机械地执行。有输出:有数据处理有输入:有数据处理通过把基于存储结构的运算实现的步骤或过程称为算法。运算功能描述---->>>基于存储结构--->>>运算功能实现==算法算法设计目标确定性:要求算法能够正确地执行预先规定的功能和性能要求。
2021-10-12 15:59:08
123
原创 学《数据结构》越学越聪明--第一章》》》绪论一
绪论一1.1 什么是数据结构1.1.1数据结构的定义首先,我们了解用计算机解决一个具体问题有哪几个步骤:分析问题,解决数据模型设计相应的算法编写程序,运行并调试程序,直至得到正确的结果寻求数据模型的实质是分析问题,从中提取操作的对象,并找出这些操作对象之间的关系,然后用数字语言加以描述。数据:描述客观事物的符号,是计算机中可以操作的对象数据元素:组成数据的基本单位,是数据结构的聚焦点数据项:数据不可分割的最小单位,一个数据元素可以由多个数据项组成数据对象:性质相同的数据元素的集合
2021-10-12 10:50:20
117
原创 C语言学习--17typedef
typedefC 语言提供了 typedef 关键字,您可以使用它来为类型取一个新的名字。下面的实例为单字节数字定义了一个术语 BYTE:typedef unsigned char BYTE;在这个类型定义之后,标识符 BYTE 可作为类型 unsigned char 的缩写,例如:BYTE b1, b2;按照惯例,定义时会大写字母,以便提醒用户类型名称是一个象征性的缩写,但您也可以使用小写字母,如下:typedef unsigned char byte;您也可以使用 typedef
2021-10-09 19:48:31
85
原创 C语言学习--16结构体
结构体什么 是结构体?C 数组允许定义可存储相同类型数据项的变量,结构是 C 编程中另一种用户自定义的可用的数据类型,它允许您存储不同类型的数据项。定义结构为了定义结构,您必须使用 struct 语句。struct 语句定义了一个包含多个成员的新的数据类型,struct 语句的格式如下:struct tag { member-list member-list member-list ...} variable-list ;tag 是结构体标签。mem
2021-10-07 20:22:19
110
原创 C语言学习--15字符串
字符串在 C 语言中,字符串实际上是使用 null 字符 \0 终止的一维字符数组。因此,一个以 null 结尾的字符串,包含了组成字符串的字符。声明下面的声明和初始化创建了一个 RUNOOB 字符串。由于在数组的末尾存储了空字符,所以字符数组的大小比单词 RUNOOB 的字符数多一个。#include <stdio.h>int main(){ //字符串 //下面的声明和初始化创建了一个 RUNOOB 字符串。由于在数组的末尾存储了空字符,所以字符数组的大小比单词 RUNOOB
2021-10-06 20:42:00
182
原创 C语言学习--14函数指针和回调函数
函数指针和回调函数函数指针是指向函数的指针变量通常我们说的指针变量是指向一个整型、字符型或数组等变量,而函数指针是指向函数。函数指针可以向一般函数那样调用函数,传递参数函数指针变量的声明:typedef int (*fun_ptr)(int,int); // 声明一个指向同样参数、返回值的函数指针类型实例以下实例声明了函数指针变量 p,指向函数 max:#include <stdio.h>#define _CRT_SECURE_NO_WARNINGSint max(in
2021-09-30 17:11:02
134
原创 C语言学习--13初识指针
C指针学习 C 语言的指针既简单又有趣。通过指针,可以简化一些 C 编程任务的执行,还有一些任务,如动态内存分配,没有指针是无法执行的。所以,想要成为一名优秀的 C 程序员,学习指针是很有必要的。正如您所知道的,每一个变量都有一个内存位置,每一个内存位置都定义了可使用 & 运算符访问的地址,它表示了在内存中的一个地址。请看下面的实例,它将输出定义的变量地址:#include <stdio.h> int main (){ int var_runoob = 10;
2021-09-19 21:05:44
105
原创 C语言学习--12枚举
C enum(枚举)枚举是 C 语言中的一种基本数据类型,它可以让数据更简洁,更易读。枚举语法定义格式为:enum 枚举名 {枚举元素1,枚举元素2,……};接下来我们举个例子,比如:一星期有 7 天,如果不用枚举,我们需要使用 #define 来为每个整数定义一个别名:#define MON 1#define TUE 2#define WED 3#define THU 4#define FRI 5#define SAT 6#define SUN 7这个看起来代码量
2021-09-18 20:36:48
96
原创 C语言学习--11.5数组的强化学习
数组的强化学习在 C 中,数组是非常重要的,我们需要了解更多有关数组的细节。下面列出了 C 程序员必须清楚的一些与数组相关的重要概念:概念描述 多维数组C 支持多维数组。多维数组最简单的形式是二维数组。 传递数组给函数您可以通过指定不带索引的数组名称来给函数传递一个指向数组的指针。 从函数返回数组C 允许从函数返回数组。 指向数组的指针您可以通过指定不带索引的数组名称来生成一个指向数组中第一个元素的指针。 多维数组C 语言支持多维数组。多维数组声明的一般形式如下:type arrayn
2021-09-17 17:56:35
173
原创 C语言学习--11数组
数组C语言支持数组的数据结构,它可以存储一个固定大小的相同类型元素的集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。数组的声明并不是声明一个单独的变量,而是声明一个组的变量,比如arr数组,然后使用arr[0]、arr[1]...等来代替单独的变量。所有数组都是由连续的内存位置组成。最低的地址对应第一个元素,最高的地址对应最后一个元素。第一个元素最后一个元素arr[0] arr[1] arr[2] arr[3] ... 数组中的特定元素可以通过索引访问,第一个索引值为
2021-09-17 14:01:09
185
原创 C语言学习--10作用域
作用域任何一种编程中,作用域是程序中定义的变量所存在的区域,超过该区域变量就不能被访问。C 语言中有三个地方可以声明变量:在函数或块内的局部变量在所有函数外部的全局变量在形式参数的函数参数定义中让我们来看看什么是局部变量、全局变量和形式参数。局部变量在某个函数或块的内部声明的变量称为局部变量。它们只能被该函数或该代码块内部的语句使用。局部变量在函数外部是不可知的。下面是使用局部变量的实例。在这里,所有的变量 a、b 和 c 是 main() 函数的局部变量。#include <s
2021-09-16 15:45:17
80
原创 C语言学习--9函数
函数函数是一组一起执行一个任务的语句。每个 C 程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数。您可以把代码划分到不同的函数中。如何划分代码到不同的函数中是由您来决定的,但在逻辑上,划分通常是根据每个函数执行一个特定的任务来进行的。函数声明告诉编译器函数的名称、返回类型和参数。函数定义提供了函数的实际主体。C 标准库提供了大量的程序可以调用的内置函数。例如,函数 strcat() 用来连接两个字符串,函数 memcpy() 用来复制内存到另一个位置。函数还有
2021-09-16 15:16:46
95
原创 C语言学习--8判断和循环
判断判断结构要求指定一个或多个需要评估和测试的条件,以及条件为真的时候需要执行的语句(这是必须要有的)和条件为假的时候需要的语句(可有可不有)。C语言把非空和非0的值鉴定为真(true),把0或null鉴定为假(false)结构形式大致如此(使用XMind进行绘制):判断语句语句描述if 语句一个 if 语句 由一个布尔表达式后跟一个或多个语句组成。if...else 语句一个 if 语句 后可跟一个可选的 else 语句,else 语句在布尔表达式为假时执行。嵌套 if 语句您可以在一
2021-09-15 16:09:50
298
原创 C语言学习--7运算符
运算符C语言中有6大运算符,分别为算数运算符关系运算符逻辑运算符位运算符赋值运算符杂项运算符接下来我们依次的进行学习这些运算符究竟有什么奥秘:算数运算符算数运算符顾名思义是与算术有关,那么肯定少不了加减乘除了运算符描述实例+把两个操作数相加 A + B 将得到 30-从第一个操作数中减去第二个操作数 A - B 将得到 -10*把两个操作数相乘 A * B 将得到 200/分子除以分母 B / A 将得到 2%取模运算符,整除后的余数 B % A 将得到 0++自增运
2021-09-14 22:30:53
334
原创 C语言学习--6存储类
存储类存储类定义C程序中的变量/函数的范围(可见性)以及生命周期。这些说明符放置在所要修饰的类型之前。下列是C语言可用的存储类:autoregisterstaticexternauto存储类auto 存储类是所有局部变量默认的存储类,如果前面没有存储类的说明符那么默认是auto存储类。定义如下:{ int mount; auto int month;}register存储类register 存储类用于定义存储在寄存器中而不是 RAM 中的局部变量。这意味着变量的最大
2021-09-11 16:48:32
87
原创 C语言学习--5常量
常量常量是固定值,在程序执行期间不会改变。这些固定的值,又叫做字面量。常量可以是任何的基本数据类型,比如整数常量、浮点常量、字符常量,或字符串字面值,也有枚举常量。常量就像是常规的变量,只不过常量的值在定义后不能进行修改。整数常量整数常量可以是十进制、八进制或十六进制的常量。前缀指定基数:0x 或 0X 表示十六进制,0 表示八进制,不带前缀则默认表示十进制。整数常量也可以带一个后缀,后缀是 U 和 L 的组合,U 表示无符号整数(unsigned),L 表示长整数(long)。后缀可以是大写,
2021-09-11 15:13:07
359
原创 C语言学习--4变量
C变量变量其实只不过是程序可操作的存储区的名称。C 中每个变量都有特定的类型,类型决定了变量存储的大小和布局,该范围内的值都可以存储在内存中,运算符可应用于变量上。变量的名称可以由字母、数字和下划线字符组成。它必须以字母或下划线开头。大写字母和小写字母是不同的,因为 C 是大小写敏感的。变量类型基于前一章讲解的基本类型,有以下几种基本的变量类型:整型char类型通常是一个字节(八位)int类型4 个字节,取值范围 -2147483648 到 2147483647 浮点类型float类
2021-09-10 21:49:21
539
原创 C语言学习--3数据类型
数据类型在 C 语言中,数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统。变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式。基本类型:它们是算术类型,包括两种类型:整数类型和浮点类型。枚举类型::它们也是算术类型,被用来定义在程序中只能赋予其一定的离散整数值的变量。void 类型:类型说明符 void 表明没有可用的值。派生类型:它们包括:指针类型、数组类型、结构类型、共用体类型和函数类型。数组类型和结构类型统称为聚合类型。函数的类型指的是函数返回值的类型
2021-09-09 21:26:38
104
原创 C语言学习--2基本语法
C 基本语法提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pypl
2021-09-08 13:24:01
101
原创 C语言学习--1初识C语言
初识C语言什么是计算机语言语言?人和人交流:汉语、英语等计算机语言:人和计算机交流C/C++ 、JAVA、Python、Go、C#等那么什么是C语言呢?C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。发展史C语言有什么特点呢?C语言既具有高级语言的通用性及易写易读的特点,又具有汇编语言的“位处理”,“地址操作”等能力。C语言是一种结构化程序设计语言,具有非
2021-09-07 21:14:34
147
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人