清华大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第十一讲 数据结构基础(一)

C语言程序设计 清华大学郑莉安颖莲 第十一讲 数据结抱基础 (一) ①《计算机程序程序设计基础》第10章 ② 《数据结构》(严蔚敏等编著)第1、2章
C语言程序设计 清华大学 郑莉 安颖莲 1 第十一讲 数据结构基础 (一) ①《计算机程序程序设计基础》第10章 ②《数据结构》(严蔚敏 等 编著)第1、2章

C语言程序设计 清华大学郑莉安颖莲 本讲主要内容 基本概念和术语 算法和算法分析 线性表的类型定义 线性表的顺序表示和实现 ·线性表的链式表示和实现 ·单链表算法举例 Page 2
C语言程序设计 清华大学 郑莉 安颖莲 Page 2 本讲主要内容 • 基本概念和术语 • 算法和算法分析 • 线性表的类型定义 • 线性表的顺序表示和实现 • 线性表的链式表示和实现 • 单链表算法举例

C语言程序设计 清华大学郑莉安颖莲 “数据结构》的基本概念 “数据结构”在计算机科学中的地位 基本概念和术语 数据 ·对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中 并被计算机程序处理的符号的总称。 -数据元素 数据的基本单位,一个数据元素可由若干数据项组成,数据项是 数据的不可分割的最小单位。 数据对象 ·性质相同的数据元素的集合,是数据的一个子集。 - 数据结构 ·是相互之间存在一种或多种特定关系的数据元素的集合。 ·四类基本结构:集合、线性结构、树形结构、图状结构或网状结构。 数据类型 ·是一个值的集合和定义在这个值集上的一组操作的总称。 高级语言中的数据类型可分为两类;原子类型、结构类型。P3
C语言程序设计 清华大学 郑莉 安颖莲 Page 3 “数据结构”的基本概念 • “数据结构”在计算机科学中的地位 • 基本概念和术语 - 数据 • 对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中 并被计算机程序处理的符号的总称。 - 数据元素 • 数据的基本单位,一个数据元素可由若干数据项组成,数据项是 数据的不可分割的最小单位。 - 数据对象 • 性质相同的数据元素的集合,是数据的一个子集。 - 数据结构 • 是相互之间存在一种或多种特定关系的数据元素的集合。 • 四类基本结构:集合、线性结构、树形结构、图状结构或网状结构。 - 数据类型 • 是一个值的集合和定义在这个值集上的一组操作的总称。 • 高级语言中的数据类型可分为两类:原子类型、结构类型

C语言程序设计 清华大学郑莉安颖莲 算法和算法分析 算法 一对特定问题求解步骤的一种描述,它是指令的有限 序列,其中每一条指令表示一个或多个操作。 ·算法的五个重要特征 - 有穷性、确定性、可行性、零个或多个输入、一个 或多个输出。 ·算法的设计要求 正确性、可读性、健壮性、效率与低存储量需求。 Page 4
C语言程序设计 清华大学 郑莉 安颖莲 Page 4 算法和算法分析 • 算法 - 对特定问题求解步骤的一种描述,它是指令的有限 序列,其中每一条指令表示一个或多个操作。 • 算法的五个重要特征 - 有穷性、确定性、可行性、零个或多个输入、一个 或多个输出。 • 算法的设计要求 - 正确性、可读性、健壮性、效率与低存储量需求

C语言程序设计 清华大学郑莉安颖莲 线性表的定义和基本操作 ·线性表是n个数据元素的有限序列。 。 线性表的基本操作 -构造一个空线性表 一销毁一个线性表 -将一个线性表重置为空表 -判断线性表是否为空 -求线性表的元素个数 求线性表的第i个元素的值 -在线性表中查找第一个满足指定条件的元素 求指定元素的前驱 求指定元素的后继 在线性表的第i个元素之前插入一个新元素 删除线性表的第i个元素 遍历线性表 Page 5
C语言程序设计 清华大学 郑莉 安颖莲 Page 5 线性表的定义和基本操作 • 线性表是 n 个数据元素的有限序列。 • 线性表的基本操作 - 构造一个空线性表 - 销毁一个线性表 - 将一个线性表重置为空表 - 判断线性表是否为空 - 求线性表的元素个数 - 求线性表的第i个元素的值 - 在线性表中查找第一个满足指定条件的元素 - 求指定元素的前驱 - 求指定元素的后继 - 在线性表的第i个元素之前插入一个新元素 - 删除线性表的第i个元素 - 遍历线性表

C语言程序设计 清华大学郑莉安颖莲 线性表的顺序表示和实现 ·用一组地址连续的存储单元依次存储线性表的 数据元素。通常用一维数组来描述。 。 特点: 一逻辑上相邻的两个元素,在物理上也具有相邻的存 储位置。 -1 可以随机存取任何一个元素。 -插入和删除时需要移动大量元素。 空间不能充分得到利用。 表的容量难以扩充
C语言程序设计 清华大学 郑莉 安颖莲 6 线性表的顺序表示和实现 • 用一组地址连续的存储单元依次存储线性表的 数据元素。通常用一维数组来描述。 • 特点: - 逻辑上相邻的两个元素,在物理上也具有相邻的存 储位置。 - 可以随机存取任何一个元素。 - 插入和删除时需要移动大量元素。 - 空间不能充分得到利用。 - 表的容量难以扩充

C语言程序设计 清华大学郑莉安颖莲 线性表的链式表示和实现 一线性链表 用一组任意的存储单元存储线性表的数据元素。这 些存储单元可以连续也可不连续。 元素a;的存储映象:结点 - 包括:自身信息(数据域),后继元素的位置(指针域) typedef struct LNode ElemType data; data next struct LNode *next; }LNode,*LinkList; 结点的存储结构 。 结点数据的访问形式 设指钛p为某结点的起始地址 数据域:p->data 指针域:p->next 。特点: 插入、删除元素时不必大量移动数据 不能随机存取其中记录
C语言程序设计 清华大学 郑莉 安颖莲 7 线性表的链式表示和实现 —线性链表 • 用一组任意的存储单元存储线性表的数据元素。这 些存储单元可以连续也可不连续。 • 元素ai的存储映象:结点 - 包括:自身信息(数据域),后继元素的位置(指针域)。 typedef struct LNode { ElemType data; struct LNode *next; }LNode, *LinkList; • 结点数据的访问形式 - 设指针 p 为某结点的起始地址 数据域:p->data 指针域:p->next • 特点: - 插入、删除元素时不必大量移动数据 - 不能随机存取其中记录 data next 结点的存储结构

C语言程序设计 清华大学郑莉安颍莲 单链表算法举例 建立链表 LinkList CreateList (LinkList la,int n) la=(LinkList)malloc (sizeof (LNode)) la->next=NULL; for(i=n;i>0;-i) p=(LinkList)malloc (sizeof(LNnde)); scanf(&p->data); p->next=la->next;la->next=p; return (1a); d
C语言程序设计 清华大学 郑莉 安颖莲 8 单链表算法举例 ——建立链表 LinkList CreateList(LinkList la, int n) { la=(LinkList)malloc(sizeof(LNode)) la->next=NULL; for(i=n; i>0; -i) { p=(LinkList)malloc(sizeof(LNnde)); scanf(&p->data); p->next=la->next; la->next=p; } return (la); }

C语言程序设计 清华大学郑莉安颖莲 单链表算法举例 在第1个位置之前插入元素b int ListInsert(LinkList la,int i,ElemType b) { p=la;j=0; while(p&&jnext;++j;} if (!p j>i-1) return(0); s=(LinkList)malloc (sizeof(Lnode)); s->data=b; s->next=p->next; p->next=s; return (1);
C语言程序设计 清华大学 郑莉 安颖莲 9 单链表算法举例 —在第 i 个位置之前插入元素 b int ListInsert(LinkList la, int i,ElemType b) { p=la; j=0; while(p&&jnext; ++j;} if (!p||j>i-1) return(0); s=(LinkList) malloc (sizeof(Lnode)); s->data=b; s->next=p->next; p->next=s; return (1); }

C语言程序设计 清华大学郑莉安颖莲 单链表算法举例 删除第i个元素 int ListDelete (LinkList la, int i { p=la;j=0; while(p->next &jnext;++j; if (!(p->next)j>i-1 return (0); q=p->next;p->next=q->next; free(q); return (1); 10
C语言程序设计 清华大学 郑莉 安颖莲 10 单链表算法举例 ——删除第 i 个元素 int ListDelete (LinkList la, int i ) { p=la; j=0; while(p->next && jnext; ++j; } if (!(p->next)|| j>i-1 ) return(0); q=p->next; p->next=q->next; free(q); return(1); }
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 清华大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第十讲 文件.pps
- 清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第11章 结构体与共用体.ppt
- 清华大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第九讲 位运算 枚举 类型定义 编译预处理.pps
- 清华大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第八讲 结构与联合.pps
- 清华大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第七讲 查找与排序算法.pps
- 清华大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第六讲 指针.pps
- 清华大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第五讲 函数.pps
- 清华大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第四讲 数组的概念及应用.pps
- 清华大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第三讲 C语言程序的基本控制结构.pps
- 清华大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第二讲 C语言基础.pps
- 清华大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第一讲 预备知识(郑莉、安颖莲).pps
- 清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第14章 C++对C的扩充.ppt
- 清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第13章 文件.ppt
- 清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第12章 位运算.ppt
- 清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第10章 指针.ppt
- 清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第9章 预处理命令.ppt
- 清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第8章 函数.ppt
- 清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第7章 数组.ppt
- 清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第6章 循环控制.ppt
- 清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第5章 选择结构程序设计.ppt
- 清华大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第十二讲 数据结构基础(二).pps
- 清华大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第十三讲 非线性结构及数据结构应用实例.pps
- 中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第01章 C语言概述.ppt
- 中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第02章 数据类型.ppt
- 中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第03章 顺序结构程序设计.ppt
- 中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第04章 选择结构程序设计.ppt
- 中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第05章 循环结构程序设计.ppt
- 中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第06章 数组.ppt
- 中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第07章 函数与变量作用域.ppt
- 中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第08章 编译预处理.ppt
- 中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第09章 指针(1/2).ppt
- 中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第09章 指针(2/2).ppt
- 中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第10章 结构类型.ppt
- 中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第11章 位运算.ppt
- 中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第12章 文件.ppt
- 呼和浩特职业学院:《局域网组建管理与维护》课程教学资源(PPT课件)第2章 硬件设备及组建.ppt
- 呼和浩特职业学院:《局域网组建管理与维护》课程教学资源(PPT课件)序言(主讲人:青梅).ppt
- 呼和浩特职业学院:《局域网组建管理与维护》课程教学资源(PPT课件)第1章 局域网基础知识.ppt
- 呼和浩特职业学院:《局域网组建管理与维护》课程教学资源(PPT课件)第3章 网络操作系统.ppt
- 呼和浩特职业学院:《局域网组建管理与维护》课程教学资源(PPT课件)第4章 常见局域网实例剖析.ppt