读数据结构(C语言版)

数据:数据是对现实世界物质的符号表示,在计算机中的意思是能输入到计算机中进行计算处理的符号为数据;是客观世界在计算机中的表示方式,是程序加工的原材料。数据可以是声音,图片,文档

数据元素:组成数据的基本构成单位,通常以结构化的形式出现,比如一本书的书目信息,包含作者,书名,出版刊号,出版社这些数据项,数据项是组成数据元素不可在分割的最小单位了。

数据对象:是具有相同结构的数据元素的集合,是数据的子集,相当于集合的概念;

数据结构:描述的是数据元素之间关系的事情,我们把这种数据元素之间关系称之为结构,即数据结构;根据元素之间关系是线性还是非线性,可以将数据结构分为如下四类:

1、 集合 数据元素之间同处于同一个数据对象内,但是没有联系;

2、 线性表 数据元素之间存在一对一的关系

3、树型结构 数据元素之间存在一对多的关系

4、 网状结构或者图状结构 数据元素之间存在多对多关系

这里定义的是数据元素之间的逻辑关系,所以这四类成为数据的逻辑结构;

但是数据结构的逻辑结构在在计算机中用高级语言表示以实现数据元素的存储,这种数据结构的逻辑结构在计算机的表示称之为物理结构(又称存储结构),要实现表示数据元素之间的逻辑结构,那么在计算机中有两种不同的表示方法:顺序存储结构和链式存储结构:

数据类型:表示变量值的集合以及定义在这个值区间能做的一组操作的集合。高级语言中数据类型可分为两种类型:原子类型与结构类型

原子类型:就如c语言中的基本数据类型,(整型,实型,字符型,枚举)

结构类型:结构类型的实例是有若干分量按一种结构组成的,因此结构类型的变量是有多个成员组成,并且每个分量可以不同,可以是实数,数组,指针比如结构体, 成员也可以是结构的,比如结构体成员是结构体变量。那么结构类型就是一种数据结构和定义在其上的操作(或者叫API)组成

时间: 2024-10-24 14:26:46

读数据结构(C语言版)的相关文章

《数据结构-C语言版》(严蔚敏,吴伟民版)课本源码+习题集解析使用说明

先附上文档归类目录: 课本源码合辑  链接??? <数据结构>课本源码合辑 习题集全解析  链接??? <数据结构题集>习题解析合辑 博主有话说: 01.自学编程,难免思路阻塞,所以从今天起,我(StrayedKing)决定在本博客陆续更新严蔚敏,吴伟民版<数据结构-C语言版>各章节的课本源码和配套习题集答案解析,目的是为了整理数据结构中的知识点,并与网友交流意见,集思广益,共同进步.        ★注★ 左侧随笔分类下用两个栏目:<课本源码>.<习

数据结构c语言版串的操作

#include<stdio.h> #include<malloc.h> #include<string.h> //定义字符串的结构体 typedef struct { char *str;//字符串 int maxLength;//最大可以存放字符的长度 int length;//目前的字符长度 }DString; //1.初始化操作 //初始化操作用来建立和存储串的动态数组空间以及给相关的数据域赋值 void Initiate(DString *s,int max,

深入浅出数据结构C语言版(5)——链表的操作

上一次我们从什么是表一直讲到了链表该怎么实现的想法上:http://www.cnblogs.com/mm93/p/6574912.html 而这一次我们就要实现所说的承诺,即实现链表应有的操作(至于游标数组--我决定还是给它单独写个博文比较好~). 那么,我们的过程应该是怎么样的呢?首先当然是分析需要什么操作,然后再逐一思考该如何实现,最后再以代码的形式写出来. 不难发现,我们希望链表能支持的(基础,可以由此延伸)操作就是: 1.给出第n个元素 2.在第n个元素的后面插入一个元素(包含在最后一个

深入浅出数据结构C语言版(8)——后缀表达式、栈与四则运算计算器

在深入浅出数据结构(7)的末尾,我们提到了栈可以用于实现计算器,并且我们给出了存储表达式的数据结构(结构体及该结构体组成的数组),如下: //SIZE用于多个场合,如栈的大小.表达式数组的大小 #define SIZE 1000 //表达式的单个元素所使用的结构体 typedef struct elem { int num = 0; //若元素存储操作数则num为该操作数 char oper = '='; //若元素存储操作符则oper为该操作符 bool IsNum = false; //用于

《数据结构(C语言版)》学习——day1,初识数据结构

1. 什么是数据结构 一般而言,使用计算机解决一个具体的问题时,大致需要经过以下几个步骤: ① 从具体的问题中抽象出一个适当的数学模型: ② 设计一个求解该数学模型的算法: ③ 编写程序,进行测试.调整,直至得到最终的问题解答. 对实际问题建立数学模型的实质是:分析问题,并从中提取操作的对象,并找出这些对象间含有的关系,然后使用数学的语言加以描述. 数据结构(data structure)可以定义为:相互之间存在一种或多种特定关系的数据元素的集合. 在任何问题中,数据元素都不是孤立存在的,而是存

严蔚敏《数据结构(C语言版)》——第1章 绪论

数据是对客观事物的符号表示.在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称. 数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理. 数据对象是性质相同的数据元素的集合,是数据的一个子集. 数据结构是相互之间存在一种或多种特定关系的数据元素的集合. 存储结构是数据结构在计算机中的表示. 数据类型是一个值的集合和定义在这个值集上的一组操作的总称. 抽象数据类型是指一个数学模型以及定义在该模型上的一组操作,是对一般数据类型的扩展. 试描述数据结构和抽象数据类型

深入浅出数据结构C语言版(12)——从二分查找到二叉树

在很多有关数据结构和算法的书籍或文章中,作者往往是介绍完了什么是树后就直入主题的谈什么是二叉树balabala的.但我今天决定不按这个套路来.我个人觉得,一个东西或者说一种技术存在总该有一定的道理,不是能解决某个问题,就是能改善解决某个问题的效率.如果能够先了解到存在的问题以及已存在的解决办法的不足,那么学习新的知识就更容易接受,也更容易理解. 万幸的是,二叉树的讲解是可以按照上述顺序来进行的.那么,今天在我们讨论二叉树之前,我们先来讨论一种情形.一种操作:假设现在有一个数组,数组中的数据按照某

深入浅出数据结构C语言版(19)——堆排序

在介绍优先队列的博文中,我们提到了数据结构二叉堆,并且说明了二叉堆的一个特殊用途--排序,同时给出了其时间复杂度O(N*logN).这个时间界是目前我们看到最好的(使用Sedgewick序列的希尔排序时间复杂度为O(N4/3),下图为两者函数图像对比,但是注意,这并不是希尔排序与堆排序的对比,只是两个大O阶函数的对比).这篇博文,我们就是要细化用二叉堆进行排序的想法,实现堆排序. 在介绍优先队列的博文中(http://www.cnblogs.com/mm93/p/7481782.html)所提到

深入浅出数据结构C语言版(4)——表与链表

在我们谈论本文具体内容之前,我们首先要说明一些事情.在现实生活中我们所说的"表"往往是二维的,比如课程表,就有行和列,成绩表也是有行和列.但是在数据结构,或者说我们本文讨论的范围内,我们所说的"表"是一维的,即所有"元素"都是前后排列的.就我个人而言,这样的"表"用"队列"来形容比较恰当.但是,数据结构中"队列"这个名词是被一种特殊的"表"给占用了的,所以我们没法再用

深入浅出数据结构C语言版(9)——多重表(广义表)

在深入浅出数据结构系列前面的文章中,我们一直在讨论的表其实是"线性表",其形式如下: 由a1,a2,a3,--a(n-1)个元素组成的序列,其中每一个元素ai(0<i<n)都是一个"原子","原子"的意思就是说元素本身是一个个体,所有元素都是相同的结构. 但是在我们常见的某些应用,比如Excel的表格中,我们发现表并不一定是线性表,Excel中的表就明显是二维的结构 那么在数据结构中,我们会使用这种广义上的表吗?答案是会,我们也会.或