首页 > 其他 > 详细

数据结构_绪论

时间:2020-12-30 00:06:53      阅读:41      评论:0      收藏:0      [点我收藏+]

绪论

数据结构的基本概念

学习数据结构,我们需要问这些问题。这门课程到底学习什么?学哪些内容?怎么学习?需要哪些基础?能达到什么目标?

数据的概念

数据(data),数据是描述客观事物的数值、字符以及一切能输入机器且能被处理的各种符号集合。这里能被处理的符号集合较宽泛可以为声音、文字、图形。

数据元素(Data Element),组成数据的基本单位。

数据对象 (Data Object),性质相同的数据元素的集合,是数据的一个子集。

数据结构的基本概念

数据结构是指相互之间存在一种或多种特定关系的数据元素集合,是带有结构的数据元素的集合,它指的是数据元素之间的相互关系,即数据的组织形式。例如:表格就是一种带有结构的集合。树型结构

数据类型 (Data Type)

数据类型是一组性质相同的值的集合以及定义在这个值集合上的一组操作的总称。一般可以看为在高级语言中已经实现的数据结构。

数据类型,一般有

定义域(定义的范围)如c语言中整型的int取值范围 -32768-32767。

操作集合(允许有哪些运算)如加、减、乘、除、取余。

数据类型可以分为原子类型、结构类型。

原子类型含义就是不可再分,如整型、指针都是原子类型。

数据抽象

 

抽象数据类型(Abstract Data Type)

计算机中有设计、抽象、实现这三种能力。做计算机抽象能力是基本的能力。

抽象数据类型(简称ADT)定义一个数据对象,数据对象中的各种元素的结构关系,以及处理数据的操作,ADT包括定义和实现两个方面。抽象数据类型的最重要的特点是数据抽象和信息屏蔽 实例 

数据抽象的本质是抽取反应问题的本质点,忽视非本质的细节,从而使设计的数据结构更具一般性,可以解决一类问题。

信息屏蔽就是对客户隐藏操作和一些实现的细节,你所使用的就是它的功能特性,其本质细节被屏蔽。

 

元素是有关系的,结构关系包含逻辑结构、存储结构、运算集合。

逻辑结构,数据的逻辑结构是指数据元素之间逻辑关系描述。

形式化描述,数据结构是一个二元组Data_Struct=(D,R),其中D是数据元素的有限集,R是D上关系的有限集。

DS = (D2,R2)数据集

D2 = [ a,b,c,d,e,f] 数据集

R2 = {T} 数据集

T = {<a,b>,<a,c>,<a,d>,<c,e>} 关系集

 常见的逻辑关系,

集合关系,

线性结构(一对一的)、

树型结构(层次化一对多,多对多)、

网状结构。

存储结构

逻辑关系定义了之后,需要存储在计算机中,存储结构就是逻辑结构在计算机中的实现。

顺序结构,顺序存储,地址连续的内存空间。

非顺序结构,非顺序存储,空间是不连续的可以任意配置。逻辑关系使用指针来实现。

运算集合

插入运算、删除运算、更新运算、查找运算 。

工资表解析

工资表的逻辑结构

工资表的存储结构

工资表的运算集合

 数据结构研究的内容,逻辑结构,按照一定逻辑关系组织起来一批数据,存储结构按照一定的映像方式存放在计算机中并在其上定义一个运算集合。

 

算法,是规则的有限集合为解决特定问题而规定一系列操作。

算法的特性,1有限性 2确定性 3输入 4输出 5可行性

 

6 数据结构和c

数据结构与程序设计的关联性,结构和程序设计是有很大的关系,好的结构能够使程序更加通用。

问题描述:欲求1名同学10次C语言课程的测试成绩总分与平均分。其中10次测试的成绩分别为:80、85、77、56、68、83、90、92、80、98.

程序实例1

技术分享图片
int main(int argc, char* argv[]) {
    int sum, verage;
    int n1, n2, n3, n4, n5, n6, n7, n8, n9, n10;
    /*10个变量存放10次成绩*/
    n1 = 80; n2 = 85; n3 = 77; n4 = 56; n5 = 68; n6 = 83; n7 = 90; n8 = 92; n9 = 80; n10 = 98;
    sum = n1 + n2 + n3 + n4 + n5 + n6 + n7 + n8 + n9 + n10; /*10个变量直接相加*/
    verage = sum / 10;
    printf("总分=%d\n", sum);
    printf("平局分=%d\n", verage);
    return 0;
}
技术分享图片

程序实例2

技术分享图片
int main(int argc, char* argv[]) {
    int sum, average; 
    int i;
   /*使用数组赋值*/ int t[10] = { 80,85,77,56,68,83,90,92,80,98 }; sum = 0;
   /*使用循环使用累加*/ for (i = 0; i < 10;i++) { sum = sum + t[i]; } average = sum / 10; printf("总分=%d\n", sum); printf("平局分=%d\n", average); return 0; }
技术分享图片

 

思维训练

公理化思维训练,这种思维是数学中的,抽象、演绎、推导。

构造性思维训练,从解决问题出发,从问题操作入手,一步一步构造达到解决问题。这种思维通过程序、工程,根据规则一步一步训练得到。

数据结构就是构造思维,不能通过推理找到结果,需要你对规则的掌握,从问题分析出发一步一步构造,变成操作变成算法来解决问题。

 

第一部分 数据结构的基本概念

第二部分 基本的数据结构,包括 线性结构-线性表、栈和队列、串、数组和广义表。非线性结构-树和图

第三部分 基本的数据处理技术 包括查找技术与排序技术

 

数据结构_绪论

原文:https://www.cnblogs.com/Xiaoxiaogroup/p/14209327.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!