java 中的数据元素的定义_Java数据结构和算法的基础概念
一、基本的概念
1.数据 是客观描述事物的符号,是计算机中操作的对象,是能被计算机识别.并输入给计算机处理的集合
2.数据元素 是组成数据的,有一定意义的基本单位.在计算机中通常作为整体处理.也被称为记录
3.数据项 一个数据元素可以由若干个项组成,是数据不可分割的最小单位
4.数据对象 是性质相同的数据元素的集合,是数据的子集
5.结构 各个组成部分相互搭配和排列的方式
6.数据结构 是相互之间存在一种或多种特定关系的数据元素的集合
1>.逻辑结构 是指数据对象中数据元素之间的相互关系
a.集合结构 集合结构中的元素同属于一个集合
b.线性结构 线性集合中的元素之间是一对一的关系
c.树形结构 树形结构中的元素之间存在一对多的层次关系
d.图形结构 图形结构中的元素之间存在多对多的关系
2>.物理结构 是指数据的逻辑结构在计算机中的存储形式。
a.线性存储 是把数据元素存放在地址连续的单元里,其数据见的物理关系和逻辑关系是一致的
b.链式存储 是把数据元素存放在任意的存储单元里,这些存储单元可以是连续的,也可以是不连续的
7.数据类型 是指一组性质相同的值的集合及定义在此集合上的一些操作的总称
8.算法 是解决特定问题求解步骤的描述,在计算机中表现为指令有限序列,并且每条指令表示一个或多个操作
1>.算法具有的五个特性
a.输入
b.输出
c.有穷性
d.确定性
e.可行性
2>.好的算法应该具有的特性
a.正确性 能正确反应问题的需求,你能得到问题的正确答案
b.可读性 便于理解和交流
c.健壮性
d.高效率
e.低存储
3>.算法的时间复杂度 公式:语句的总执行次数:T(n)=O(f(n)); f(n)为问题规模n的某个函数
大O记法的推导步骤
1.用常数1取代运行时间中的所有加法常数
2.在修改后的运行次数函数中,只保留最高阶项
3.如果最高阶项存在且不是1,咋去除与这个项相乘的常数
1.O(1) 常数阶
2.O(log2n)/O(lbn) 对数阶
3.O(n) 线性阶
4.O(n*log2n) 线性对数阶
5.O(n^2) 平方阶
6.O(n^3) 立方阶
7.O(n^k) k次方阶
8.O(2^n) 指数阶
4.算法的空间复杂度 公式: S(n)=O(f(n)); f(n)为语句关于n所占存储空间的函数
9.线性表(List) 零个或多个数据元素的有限序列.最前面的元素没有前驱.最后面的元素没有后继.其它元素有且只有一个前驱和后继
10.树 树(Tree)是n(n>=0)个节点的有限集合.n=0是称为空树
1>.树的定义
1.根节点是唯一的,不能存在多个根节点
2.子树的个数不限制,但是他们节点是互不相交的
2>.节点的定义
1.树的节点包含一个数据元素和若干指向子树的分支
2.节点拥有的子树的个数称为节点的度.度为0的节点称为叶子节点.度不为0的节点称为非终端节点或分支节点,树的度是树内各节点度的最大值
3.树中节点的最大层次称为树的深度或高度
3>.树结构和线性结构的区别
1.线性结构的第一个数据元素没有前驱.树结构的根节点:无双亲,唯一
2.线性表中间元素只有也仅有一个前驱和一个后继.中间节点...有一个双亲或着多个孩子
3.线性表的最后一个数据元素.没有后继 ,叶节点.无孩子
11.二叉树的特点
1.每个节点最多有两棵子树
2.左子树和右子树是有顺序的
3.即使节点只有一棵子树,也要区分他为左子树还是右子树
1>.斜树
1.所有节点都只有左子树的二叉树叫做左斜树
2.所有节点都只有右子树的二叉树叫做右斜树
2>.满二叉树 在一棵二叉树中,如果所有分支节点都存在左子树和右子树.并且所有叶子都在同一个层上.这样的二叉树称为满二叉树
特点:1.叶子只能出现在最下一层
2.非叶子节点的度一定是2
3.在同样深度的二叉树中.满二叉树的节点和叶子是最多的
3>.完全二叉树 对一棵具有N个节点的二叉树按层次编号,如果编号为i(1<=i<=N)的节点与同样深度的的满二叉树中编号为i的节点的位置完全相 同.即为完全二叉树
特点1.叶子节点只能出现在最下面的两层
2.最下层的叶子一定集中在左部的连续部位
3.倒数第二层若为叶子节点.一定在右连续位置
4.如果节点度为1.那么该节点只有左子树,不可能有右子树
5.同样节点树的二叉树,完全二叉树的深度是最小的
4>.二叉树的性质
1.在二叉树的第i层上最多2^i个节点
2.深度为i的二叉树,最多有2^(i+1)-1个节点
3.对任何一棵二叉树T,如果其叶子节点数为n0,度为2的节点数n2,则n0=n2+1;
4.具有n个节点的完全二叉树的深度为logn;
5>.二叉树的先,中,后序遍历
1.先序遍历 先访问根节点.在先序遍历左树.在先序遍历右树
2.中序遍历 中序遍历左子树,在访问根节点,在中序遍历右子树
3.后序遍历 后序遍历左子树,在后序遍历右子树,在访问根节点
java 中的数据元素的定义_Java数据结构和算法的基础概念相关推荐
- java数据接口之链表_Java数据结构和算法之链表
三.链表 链结点 在链表中,每个数据项都被包含在'点"中,一个点是某个类的对象,这个类可认叫做LINK.因为一个链表中有许多类似的链结点,所以有必要用一个不同于链表的类来表达链结点.每个LI ...
- java语言中的数据是如何定义_java中的数据类型
java中的数据类型 java语言的数据类型包括两种,基本数据类型和引用数据类型. 定义 基本数据类型:变量名指向具体的数值. 引用数据类型:变量名指向存数据对象的内存地址,即变量名指向hash值. ...
- 已知线性表LA和LB中的数据元素按值非递减有序排列,现要求将LA和LB归并为一个新的线性表LC,且LC中的数据元素仍按值非递减有序排列。例如,设 LA=(3,5,8,11) LB=(2,6,8,9,1
已知线性表LA和LB中的数据元素按值非递减有序排列,现要求将LA和LB归并为一个新的线性表LC,且LC中的数据元素仍按值非递减有序排列.例如,设 LA=(3,5,8,11) LB=(2,6,8,9,1 ...
- 设顺序表va中的数据元素递增有序。试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性。
题目要求:设顺序表va中的数据元素递增有序.试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性. 代码实现: void Insert(SqList *va,int x) {int i;if( ...
- (线性表)设顺序表A中的数据元素递增有序,试写一程序,将x插入到顺序表的适当位置上,使该表仍然有序。
(线性表)设顺序表A中的数据元素递增有序,试写一程序,将x插入到顺序表的适当位置上,使该表仍然有序. [算法的基本思想] 建立顺序表,在表中从后往前查找要插入的元素的位置,直到找到第一个比X小的数,并 ...
- 设顺序表va中的数据元素递增有序。先实现将x插入到顺序表的适当位置上,保存该表的有序性。
设顺序表va中的数据元素递增有序.先实现将x插入 到顺序表的适当位置上,保存该表的有序性. /* 设顺序表va中的数据元素递增有序.先实现将x插入 到顺序表的适当位置上,保存该表的有序性. */ #d ...
- java 判断数组已经存满_详解Java中数组判断元素存在几种方式比较
1. 通过将数组转换成List,然后使用List中的contains进行判断其是否存在 public static boolean useList(String[] arr,String contai ...
- 算法2.2 已知线性表LA和LB中的数据元素按值非递减有序排列,现要求将LA和LB归并为一个新的线性表LC,且LC中的数据元素仍按值非递减有序排列。
数据结构(C语言版)严蔚敏 吴伟民 算法2.2 已知线性表LA和LB中的数据元素按值非递减有序排列,现要求将LA和LB归并为一个新的线性表LC,且LC中的数据元素仍按值非递减有序排列.例如,设 LA= ...
- Java中List 删除元素方法參考
Java中List 删除元素 Java中List 删除元素会使集合大小减少,合理删除的一些方法. 1:删除后的元素i-1 删除一个元素后,后边的元素左移1位,此时i-1,保证了下次循环能访问到左移了1 ...
最新文章
- 专家揭示模块化数据中心的真谛
- Linux 终端下 dstat 监控工具
- 然而毕博淮安的毕博淮安
- 操作系统(李治军) L10用户级线程
- 一个小案例精通lamda表达式与函数式接口
- OSI七层协议模型和各自的功能
- MacOS如何设置不使用时退出登录用户账号
- 金庸15部小说精校版
- CREO:CREO软件的简介、安装(七大步骤)、学习路线大全(CREO软件各模块界面解释—菜单栏快速栏工作区、草绘/零件/工程图/装配设计讲解)、案例应用(几十个案例)之详细攻略
- 2018第九届蓝桥杯省赛真题JAVA语言 C组真题题解答案(全)
- 计算机无法连接声音怎么办,电脑耳机没声音怎么设置|耳机插电脑没有声音解决方法...
- Jetpack-Compose
- python网络编程内容_图解Python网络编程
- 猜数字游戏(小游戏编码)
- 安装黑群晖不求人,arpl在线编译安装群晖教程
- coreldraw 长方体_用coreldraw 11制作铅笔_coreldraw教程
- webpack 配置 alias
- 机器学习算法衡量指标——准确率、精确率(查准率)、召回率(查全率)
- "无招胜有招"nbsp;史上最全的互…
- 房屋租赁合同中押金的法律性质分析