大规模集成电路设计应用与实践

Post on 30-Dec-2015

109 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

代码阅读与实践 Lecture 5 主讲人:胡亚斌 E-mail : yabin.hwu@gmail.com. 大规模集成电路设计应用与实践. 系列课程之. 第四次课的回顾. 源代码的基本元素 头文件搜索路径与头文件保护 作用域和生存周期 循环结构 循环次数、循环定式与不定式、循环退出 控制结构代码阅读方法. 1. 2. 3. 4. 5. 9. 6. 10. 8. 7. 课程内容. 向量. 集合. 矩阵和表. 链表. 栈. 树. 队列. 图. STL 简介. 映射. C 语言数据结构之. 向量. 向量实现与处理. - PowerPoint PPT Presentation

TRANSCRIPT

信息技术教学实验中心

大规模集成电路设计应用与实践

代码阅读与实践Lecture 5

主讲人:胡亚斌E-mail : yabin.hwu@gmail.com

系列课程之

信息技术教学实验中心

第四次课的回顾

•源代码的基本元素

•头文件搜索路径与头文件保护

•作用域和生存周期

•循环结构 循环次数、循环定式与不定式、循环退出

•控制结构代码阅读方法

2

信息技术教学实验中心3

课程内容

1

2

3

集合

4

5

队列

6向量

矩阵和表

映射

7 链表

8

9

10 STL 简介

信息技术教学实验中心

向量C 语言数据结构之

4

信息技术教学实验中心

向量实现与处理

•C 语言中通常用数组 (array) 实现•处理方式

for 循环

memset

memcpy

文件读写 fwrite 和 fread

5

信息技术教学实验中心

越界访问

•Java, C#, Ada 认为数组越界访问是一种错误,会引发异常

•Perl, Tcl/Tk 会自动扩展区域

•C/C++ 返回未定义的值

•应避免缓冲区溢出问题(常被蠕虫病毒利用)

6

信息技术教学实验中心

越界访问: 实例

7

信息技术教学实验中心

矩阵和表C 语言数据结构之

8

信息技术教学实验中心

•一般用 struct 实现•实例: icmp 数字编码转字符串

9

信息技术教学实验中心

矩阵实现( 1 )

•通常用二维数组实现

10

信息技术教学实验中心

矩阵实现( 2 )

•动态分配内存实现

11

信息技术教学实验中心

矩阵实例:每一行元素数量不等

12

信息技术教学实验中心

栈C 语言数据结构之

13

信息技术教学实验中心

抽象数据类型栈的定义

• 栈 (Stack) 是限制在表的一端进行插入和删除运算的线性表,通常称插入、删除的这一端为栈顶 (Top) ,另一端为栈底 (Bottom) 。表中没有元素时称为空栈。

• 假设栈 S=(a1 , a2 , a3 ,… an) ,则 a1 称为栈底元素, an 为栈顶元素。栈中元素按 a1 , a2 , a3 ,… an 的次序进栈,退栈的第一个元素应为栈顶元素。

14

信息技术教学实验中心

顺序栈

• 由于栈是操作受限的线性表,因此线性表的存储结构对栈也适应。栈的顺序存储结构简称为顺序栈,可用数组来实现顺序栈。因为栈底位置是固定不变的,所以可以将栈底位置设置在数组的两端的任何一个端点。• 栈顶位置是随着进栈和退栈操作而变化,故需用一

个指针 top 来指示当前栈顶的位置,通常称 top 为栈顶指针。因此,顺序栈的类型定义只需将顺序表的类型定义中的长度属性改为 top 指针即可。

15

信息技术教学实验中心

顺序栈实现

16

信息技术教学实验中心

上溢和下溢

•上溢:当栈满时再做进栈运算必定产生空间溢出

•下溢:当栈空时再做退栈运算也将产生溢出。

•溢出是一种出错状态,应该设法避免。

17

信息技术教学实验中心

栈的基本操作

• 栈的初始化 InitStack 操作

• 进栈 Push 操作

• 出栈 Pop 操作

• 取栈顶元素 GetTop 操作

18

信息技术教学实验中心

栈的初始化

19

信息技术教学实验中心

进栈

20

信息技术教学实验中心

出栈

21

信息技术教学实验中心

取栈顶元素

22

信息技术教学实验中心

链栈

•栈的链式存储结构称为链栈,它是操作受限的单链表,其插入和删除操作仅限制在表头位置上进行。

•链栈通常用不带头结点的单链表来实现。栈顶指针就是链表的头指针。

23

信息技术教学实验中心

链栈的抽象数据类型

24

信息技术教学实验中心

入栈

25

信息技术教学实验中心

出栈

26

信息技术教学实验中心

队列C 语言数据结构之

27

信息技术教学实验中心

映射C 语言数据结构之

28

信息技术教学实验中心

集合C 语言数据结构之

29

信息技术教学实验中心

链表C 语言数据结构之

30

信息技术教学实验中心

树C 语言数据结构之

31

信息技术教学实验中心

图C 语言数据结构之

32

信息技术教学实验中心

STL 简介C++ 数据结构之

33

信息技术教学实验中心

作业

34

top related