| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5433 人关注过本帖, 1 人收藏
标题:求数据结构c语言(严蔚敏,吴伟民) 电子书 下载
只看楼主 加入收藏
seykaola
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2004-12-4
收藏(1)
 问题点数:0 回复次数:23 
求数据结构c语言(严蔚敏,吴伟民) 电子书 下载
我想找数据结构c语言(严蔚敏,吴伟民) 的电子书,谁有给我传上来好吗?
搜索更多相关主题的帖子: 吴伟民 严蔚敏 数据结构 c语言 电子书 
2004-12-05 13:45
ysfabm
Rank: 1
等 级:新手上路
威 望:1
帖 子:274
专家分:0
注 册:2004-11-9
收藏
得分:0 

发到这算了.

数据结构教程

第一课:数据结构的基本概念和术语

第二课:抽象数据类型的表示与实现

第三课:算法及算法设计要求

第四课:算法效率的度量和存储空间需求

第五课:线性表的类型定义

第六课:线性表的顺序表示和实现

第七课:实验一 线性表的顺序存储实验

第八课:线性表的链式表示与实现

第九课:循环链表与双向链表

第十课:栈的表示与实现

第十一课:栈的应用

第十二课:实验二 循环链表实验

第十三课:队列

第十四课:串的定义

第十五课:串的表示和实现

第十六课:串操作应用举例

第十七课:实验三:栈的表示与实现及栈的应用

第十八课:数组的顺序表示与实现

第十九课:实验四 串的实现实验

第二十课:广义表

第二十一课:树、二叉树定义及术语

第二十二课:实验五 数组实验

第二十三课:二叉树的存储结构

第二十四课:遍历二叉树

第二十五课:单元测验

第二十六课:图的定义与术语

第二十七课:实验六 二叉树实验

第二十八课:图的存储结构

第二十九课:静态查找表(一)顺序表的查找

第三十课:静态查找表(二)有序表的查找

第三十一课:动态查找表

第三十二课:哈希表(一)

第三十三课:哈希表(二)

第三十四课:插入排序,快速排序

第三十五课:实验七 查找

第三十六课:选择排序,归并排序

第三十七课:实验八 排序实验

第三十八课:文件概念,顺序文件

第三十九课:索引文件

第四十课:总复习


精诚所至,
       金石为开!
      PLM技术社区: [url=http://www.]www.[/url] 最专业的PLM技术讨论社区。
2004-12-06 16:15
ysfabm
Rank: 1
等 级:新手上路
威 望:1
帖 子:274
专家分:0
注 册:2004-11-9
收藏
得分:0 

第一课

本课主题:数据结构的基本概念和术语

教学目的:了解数据结构的基本概念,理解常用术语

教学重点:基本概念:数据与数据元素

教学难点:数据元素间的四种结构关系。

授课内容:

一、数据、数据元素、数据对象、数据结构的定义

1、数据的定义

定义一:数据是客观事物的符号表示。

学号

姓名

语文

数学

C语言

6201001

张三

85

54

92

6201002

李四

92

84

64

6201003

王五

87

74

73

6201004

 

 

 

...

 

 

 

例:张三的C语言考试成绩为92分,92就是该同学的成绩数据。

定义二:能输入到计算机中并被计算机程序处理的符号的总称。

例:图像、声音等。

总结:现实世界信息的分析、复制、传播首先要符号化,这样才便于处理,尤其是便于计算机的处理。家长、社会要了解一个学生的学习成绩和能力,要看他的学习档案,而学习档案即是说明该学生学习情况的数据。

2、数据元素、数据项

数据元素是数据的基本单位,它也可以再由不可分割的数据项组成。如图示:


精诚所至,
       金石为开!
      PLM技术社区: [url=http://www.]www.[/url] 最专业的PLM技术讨论社区。
2004-12-06 16:15
ysfabm
Rank: 1
等 级:新手上路
威 望:1
帖 子:274
专家分:0
注 册:2004-11-9
收藏
得分:0 

3、数据对象

是性质相同的数据元素的集合。如上例:一个班级的成绩表可以看作一个数据对象。

4、数据结构

定义一、数据元素集合(也可称数据对象)中各元素的关系。

定义二、相互之间存在特定关系的数据元素集合。

数据结构的种类:

特征

示例

集合

元素间为松散的关系

线性结构

元素间为严格的一对一关系

如上面的成绩表中各元素

树形结构

元素间为严格的一对多关系

图状结构(或网状结构)

元素间为多对多关系

数据结构的形式定义:

数据结构名称=(D,S)

其中D为数据元素的有限集,S是D上关系的有限集

逻辑结构

“数据结构”定义中的“关系”指数据间的逻辑关系,故也称数据结构为逻辑结构。

存储结构

数据结构在计算机中的表示称为物理结构。又称存储结构。

顺序存储结构

链式存储结构

存储结构详解:

计算机中存储信息的最小单位:,8位为一字节,两个字节为一字,字节、字或更多的二进制位可称为位串。在逻辑描述中,把位串称为元素或结点

当数据元素由若干数据项组成时,位串中对应于各个数据项的子位串称为数据域(Data Field)。

例:上述成绩表数据用C语言的结构体数组classonestu[50]来存储:

struct stu { int stuno;/*数据项,也称stu位串中的一个子位串,或叫做数据域*/ char name[20]; int maths; int language; int c_language; } classonestu[50];


精诚所至,
       金石为开!
      PLM技术社区: [url=http://www.]www.[/url] 最专业的PLM技术讨论社区。
2004-12-06 16:16
ysfabm
Rank: 1
等 级:新手上路
威 望:1
帖 子:274
专家分:0
注 册:2004-11-9
收藏
得分:0 

二、数据类型

1、定义:数据类型是一个值的集合和定义在这个值集上的一组操作的总称。

例:C语言中的整型,其内涵为一定范围的自然数集合,及定义在该集合上的加减乘除及取模、比较大小操作。而实型则无取模操作。当然整型也不需四舍五入。

2、数据类型的种类:

特征

原子类型

值在逻辑上不可分解

int float

结构类型

值由若干成分按某种结构组成

struct stu

数据类型封装了数据存储与操作的具体细节。

三、总结

数据->数据元素

具有特定关系的数据元素集合->数据结构

数据结构的逻辑表示与物理存储->逻辑结构与存储结构

人们不仅关心数据的逻辑结构、存储结构,还关心数据的处理方法(算法)与处理结果->数据类型

数据类型->分类


精诚所至,
       金石为开!
      PLM技术社区: [url=http://www.]www.[/url] 最专业的PLM技术讨论社区。
2004-12-06 16:16
ysfabm
Rank: 1
等 级:新手上路
威 望:1
帖 子:274
专家分:0
注 册:2004-11-9
收藏
得分:0 

第二课

本课主题: 抽象数据类型的表示与实现

教学目的: 了解抽象数据类型的定义、表示和实现方法

教学重点: 抽象数据类型表示法、类C语言语法

教学难点: 抽象数据类型表示法

授课内容:

一、抽象数据类型定义(ADT)

作用:抽象数据类型可以使我们更容易描述现实世界。例:用线性表描述学生成绩表,用树或图描述遗传关系。

定义:一个数学模型以及定义在该模型上的一组操作。

关键:使用它的人可以只关心它的逻辑特征,不需要了解它的存储方式。定义它的人同样不必要关心它如何存储。

例:线性表这样的抽象数据类型,其数学模型是:数据元素的集合,该集合内的元素有这样的关系:除第一个和最后一个外,每个元素有唯一的前趋和唯一的后继。可以有这样一些操作:插入一个元素、删除一个元素等。

抽象数据类型分类

原子类型

值不可分解,如int

固定聚合类型

值由确定数目的成分按某种结构组成,如复数

可变聚合类型

值的成分数目不确定如学生基本情况

抽象数据类型表示法:

一、

三元组表示:(D,S,P)

其中D是数据对象,S是D上的关系集,P是对D的基本操作集。

二、书中的定义格式:

ADT 抽象数据类型名{

数据对象:<数据对象的定义>

数据关系:<数据关系的定义>

基本操作:<基本操作的定义>

}ADT 抽象数据类型名


精诚所至,
       金石为开!
      PLM技术社区: [url=http://www.]www.[/url] 最专业的PLM技术讨论社区。
2004-12-06 16:17
ysfabm
Rank: 1
等 级:新手上路
威 望:1
帖 子:274
专家分:0
注 册:2004-11-9
收藏
得分:0 

例:线性表的表示

名称

线性表

数据对象

D={ai| ai(-ElemSet,i=1,2,...,n,n>=0}

任意数据元素的集合

数据关系

R1={<ai-1,ai>| ai-1,ai(- D,i=2,...,n}

除第一个和最后一个外,每个元素有唯一的直接前趋和唯一的直接后继

基本操作

ListInsert(&L,i,e)

L为线性表,i为位置,e为数据元素。

ListDelete(&L,i,e)

...


精诚所至,
       金石为开!
      PLM技术社区: [url=http://www.]www.[/url] 最专业的PLM技术讨论社区。
2004-12-06 16:18
ysfabm
Rank: 1
等 级:新手上路
威 望:1
帖 子:274
专家分:0
注 册:2004-11-9
收藏
得分:0 

二、类C语言语法

类C语言语法示例

1、预定义常量和类型

#define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 #define INFEASIBLE -1 #define OVERFLOW -2 typedef in Status; //Status是函数的类型,其值是函数结果状态代码。

2、数据结构的存储结构

typedef ElemType first;

3、基本操作的算法

函数类型 函数名(函数参数表){ //算法说明 语句序列 }//函数名

4、赋值语句

简单赋值:

变量名=表达式;

串联赋值:

变量名1=变量名2=...=变量名k=表达式;

成组赋值:

(变量名1,...,变量名k)=(表达式1,...,表达式k); 结构名=结构名; 结构名=(值1,...,值k); 变量名[]=表达式; 变量名[起始下标..终止下标]=变量名[起始下标..终止下标];

交换赋值:

变量名<-->变量名;

条件赋值:

变量名=条件表达式?表达式?表达式T:表达式F

5、选择语句

1、if(表达式) 语句; 2、if(表达式) 语句; else 语句; 3、switch(表达式){ case 值1:语句序列1;break;

... case 值n:语句序列n;break; default:语句序列n+1;break; } 4、switch{ case 条件1:语句序列1;break;

... case 条件n:语句序列n;break; default:语句序列n+1;break; }

6、循环语句

for(赋初值表达式;条件;修改表达式序列)语句; while(条件)语句; do{ 语句序列}while(条件);

7、结束语句

return [表达式]; return; //函数结束语句 break; //case结束语句 exit(异常代码); //异常结束语句

8、输入和输出语句

scanf([格式串],变量1,...,变量n);

9、注释

//文字序列

10、基本函数

max(表达式1,...,表达式n) min,abs,floor,ceil,eof,eoln

11、逻辑运算

&&与运算;||或运算


精诚所至,
       金石为开!
      PLM技术社区: [url=http://www.]www.[/url] 最专业的PLM技术讨论社区。
2004-12-06 16:19
ysfabm
Rank: 1
等 级:新手上路
威 望:1
帖 子:274
专家分:0
注 册:2004-11-9
收藏
得分:0 

例:线性表的实现: ADT List{

数据对象: D={ai| ai(-ElemSet,i=1,2,...,n,n>=0}

数据关系: R1={<ai-1,ai>| ai-1,ai(- D,i=2,...,n}

基本操作:

InitList(&L) DestroyList(&L) ListInsert(&L,i,e) ListDelete(&L,i,&e)

}ADT List

ListInsert(List &L,int i,ElemType e)

{if(i<1||i>L.length+) return ERROR;

q=&(L.elem[i-1]);

for(p=&(L.elem[L.length-1]);p>=q;--p) *(p+1)=*p;

*q=e;

++L.length;

return OK;

}


精诚所至,
       金石为开!
      PLM技术社区: [url=http://www.]www.[/url] 最专业的PLM技术讨论社区。
2004-12-06 16:19
ysfabm
Rank: 1
等 级:新手上路
威 望:1
帖 子:274
专家分:0
注 册:2004-11-9
收藏
得分:0 

下面是C语言编译通过的示例

#define ERROR 0 #define OK 1 struct STU { char name[20]; char stuno[10]; int age; int score; }stu[50]; struct LIST { struct STU stu[50]; int length; }L; int printlist(struct LIST L) { int i; printf("name stuno age score\n"); for(i=0;i<L.length;i++) printf("%s %s\t%d\t%d\n", L.stu[i].name, L.stu[i].stuno, L.stu[i].age, L.stu[i].score); printf("\n"); } int listinsert(struct LIST *L,int i,struct STU e) { struct STU *p,*q; if (i<1||i>L->length+1) return ERROR; q=&(L->stu[i-1]); for(p=&L->stu[L->length-1];p>=q;--p) *(p+1)=*p; *q=e; ++L->length; return OK; }/*ListInsert Before i */ main() { struct STU e; L.length=0; strcpy(e.name,"zmofun"); strcpy(e.stuno,"100001"); e.age=80; e.score=1000; listinsert(&L,1,e); printlist(L); printf("List length now is %d.\n\n",L.length);

strcpy(e.name,"bobjin"); strcpy(e.stuno,"100002"); e.age=80; e.score=1000; listinsert(&L,1,e); printlist(L); printf("List length now is %d.\n\n",L.length); }

E:\ZM\Zmdoc\datastru\class02>listdemo

name stuno age score

zmofun 100001 80 1000

List length now is 1.

name stuno age score

bobjin 100002 80 1000

zmofun 100001 80 1000

List length now is 2.


精诚所至,
       金石为开!
      PLM技术社区: [url=http://www.]www.[/url] 最专业的PLM技术讨论社区。
2004-12-06 16:20
快速回复:求数据结构c语言(严蔚敏,吴伟民) 电子书 下载
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.063535 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved