C语言-数据结构

  • 数据结构引入

  • 数据结构导学

基础:两个基础,主要是结构体和内存(malloc)要掌握,要多敲代码。

学习方法:第一步:先听并主动思考;第二部:尝试练习;第三部:多敲代码练习

  • 初始结构体

结构体的作用:分类排列,使程序更有结构性,在大量程序时使用。

数据元素之间存在的某种关系:线性关系,层次关系,网状关系

学习数据结构的意义:1、提高编程能力,训练思维,数据结构比较抽象;2、开发中,使用数据结构使开发成品的可复用性,可维护性,可读行以及开发效率都会清晰提高。

  • 什么是数据结构

数据结构研究计算机数据间关系;

包括数据的逻辑结构和存储结构及其操作;

  • 数据结构基本概念

  1. 数据:数据即信息的载体,是能够输入到计算机中并且被计算机识别、存储和处理的符号总成;

  1. 数据元素:是数据的基本单位,又称之为记录。一般,数据元素由若干基本项(或称字段、域属性)组成;(实际数据结构就是研究数据元素之间的关系)

  • 数据结构的逻辑结构

表示数据运算之间的抽象关系

按每个元素可能具有的直接前趋数和直接后继数将数据结构分为“线性结构”和“非线性结构”两大类。

集合——元素属于集合,所有元素都属于一个集合,没有其他关系,就叫集合

线性结构——一个对一个,如线性表、栈、队列

树形结构——一个对多个,如树(前趋有一个后继可以有很多个)

图状结构——多个对多个(也叫网状结构)前趋和后继都可以有很多个

  • 数据结构的存储结构

存储结构:逻辑结构在计算机中的具体实现方法

存储结构是通过计算机语言所编制的程序来实现的,因而是依赖具体的计算机语言的。

存储结构的类型

顺序存储(Sequential Storage):将数据结构中各元素按照其逻辑顺序存放于存储器的一片连续的存储空间中。

如一维数组,如表L=(a1,a2,.....,an)的顺序

链式存储(重点):将数据结构中各元素分布到存储器的不同点,用地址(或链指针)方式建立他们之间的联系;比如:

数据结构中元素之间的关系在计算机内部很大程度上是通过地址或指针来建立的。

  • 索引存储

在存储数据的同事,建立一个附加的索引表,即索引存储结构=数据文件+索引表。

  • 散列存储

根据数据元素的特殊字段(称为关键字key),计算数据元素的存放地址;然后数据元素按地址存放。

  • 数据结构引入知识点:总结

  • 线性表

  • 线性表之顺序表

线性表逻辑结构

线性表定义:线性表是包含若干数据元素的一个线性序列

记为L=(a0,....ai-1,ai,ai+1...an-1)

L为表明,ai(0<=i<=n-1)为数据元素;

n为表长,n大于0时,线性表L为非空表,否则为空表;

线性表L可用二元组形式描述:L = (D,R)

即线性表L包含数据元素集合D和关系集合R

D={ai | ai∈datetype , i = 0,1,2, ........n-1,n≥0}

R={<ai,ai+1> | ai, ai+1∈D, 0<=i<=n-2}

关系符<ai, ai+1>早这里称为序对

表示任意相邻的两个元素之间的一种先后次序关系

ai是ai+1的直接前趋,ai+1是ai的直接后继

例如:设有一个顺序表L={1,2,3,4,5,6}; 他们的关系图如下:

①——②——③——④——⑤——⑥

使用二元组描述L=(D,R)

D={1,2,3,4,5,6}{n=6}

R={<1,2>,<2,3>,<3,4>,<4,5>,<5,6>}

顺序表特征

①表头无前趋

②表尾无后继

③中间任意一个元素有且仅有一个直接前趋,有且仅有一个直接后继。

顺序存储结构

比如:若将线性表L=(a0,a1,......,an-1)中的各元素依次存储于计算机的一片联系的存储空间。

设LOC(ai)为ai的地址,L

  • 9
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值