版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、会计学1数据结构数据结构(sh j ji u)C实现实现第一页,共89页。 数据结构是计算机专业教学计划中的一门核心课程,也是信息管理、通信电子、自动控制等与计算机技术关系密切的专业的一门基础课程。从事与计算机科学与技术相关(xinggun)的工作, 尤其是计算机应用领域的开发和研制工作,必须具备坚实的数据结构的基础。 本书对C+语言作了简单介绍,叙述了抽象数据类型和面向对象的概念,介绍了线性表、栈、队列、数组、广义表、树、图等数据结构,并介绍了查找和排序的方法。全书用C+语言描述并实现了所有数据结构的类和程序,并附有习题,便于教学。 本书是为高等院校开设数据结构课程编著的教材,可供计算机等专
2、业,也可供从事计算机开发和应用的工程技术人员阅读参考。 第1页/共89页第二页,共89页。第2页/共89页第三页,共89页。第3页/共89页第四页,共89页。第4页/共89页第五页,共89页。第5页/共89页第六页,共89页。第6页/共89页第七页,共89页。的原理和方法,又注重了其实践性,使之适应于现代大学生的学习特点和要求。第7页/共89页第八页,共89页。(jinl)良好的基础。第8页/共89页第九页,共89页。(fnbi)找和排序的方法。第9页/共89页第十页,共89页。第10页/共89页第十一页,共89页。第11页/共89页第十二页,共89页。+=(算法+数据结构)= 程序第12页/
3、共89页第十三页,共89页。第13页/共89页第十四页,共89页。(cozu)的对象,并找出这些操作(cozu)对象之间的关系,然后用数学的语言加以描述。第14页/共89页第十五页,共89页。第15页/共89页第十六页,共89页。第16页/共89页第十七页,共89页。第17页/共89页第十八页,共89页。的数据对象;所有的字符是数据,的数据对象;所有的字符是数据,字母集合字母集合AS=A, B, Z, a, AS=A, B, Z, a, b, , Zb, , Z是该数据的数据对象。是该数据的数据对象。第18页/共89页第十九页,共89页。第19页/共89页第二十页,共89页。第20页/共89页
4、第二十一页,共89页。说,算法设计是基于数据的逻辑结构,而算法实现则基于数据的物理结构。第21页/共89页第二十二页,共89页。第22页/共89页第二十三页,共89页。第23页/共89页第二十四页,共89页。第24页/共89页第二十五页,共89页。第25页/共89页第二十六页,共89页。第26页/共89页第二十七页,共89页。第27页/共89页第二十八页,共89页。值的变量(binling)。如n const int pi=3.1415926。第28页/共89页第二十九页,共89页。(5) 引用:引用类型用于为一个(y )对象提供一个(y )可替换的名字。对于某一个(y )类型的对象的引用,所
5、采用的声明方式就是在该类型后面添上一个(y )符号。例如 int x=9; int y=x; x=13printf(“x=%d,y=%d”,x,y,); 第29页/共89页第三十页,共89页。第30页/共89页第三十一页,共89页。把变量声明放在靠近首次引用的位置,即用到时再声明后写上使用,可提高程序的可读性。第31页/共89页第三十二页,共89页。该程序块中引用该全局变量,则可以使用域操作符:来引用全局变量。第32页/共89页第三十三页,共89页。n此外,定向到错误文件的命令由cerr定义。第33页/共89页第三十四页,共89页。# include void main( ) int x,y;
6、cin x y;cout “x=” x endl;cout “y=” y endl;第34页/共89页第三十五页,共89页。 y=10第35页/共89页第三十六页,共89页。ofstream。而执行输入输出(shch)的流必须声明为类fstream。第36页/共89页第三十七页,共89页。第37页/共89页第三十八页,共89页。第38页/共89页第三十九页,共89页。例例1-5 1-5 一个一个(y )(y )函数函数int min int min (int a, int bint a, int b) if a b return a;if a b return a;else return b;
7、else return b; 对于不返回值的函数,其返回类型要声明为 void。在C+中,指定空参数(cnsh)列表的方法是在圆括号中写入void,或什么也不写。第39页/共89页第四十页,共89页。例例1-6 使用不带参数使用不带参数(cnsh)的函数的函数# includevoid f1( );void f2 (void);main( ) f1( ); f2( );return 0;第40页/共89页第四十一页,共89页。输出(shch)结果为: Function f1 takes no arguments Function f2 also takes no arguments第41页/共
8、89页第四十二页,共89页。第42页/共89页第四十三页,共89页。第43页/共89页第四十四页,共89页。# include int ExampleByValue(int a, int b, int c) int x,y,z;x=a; y=b; z=c;a=3*a ;b=3*b ;c=3*c;return(x+y+z)/3;第44页/共89页第四十五页,共89页。第45页/共89页第四十六页,共89页。次,因而输出结果为6,9,12,9。第46页/共89页第四十七页,共89页。第47页/共89页第四十八页,共89页。第48页/共89页第四十九页,共89页。第49页/共89页第五十页,共89页
9、。第50页/共89页第五十一页,共89页。第51页/共89页第五十二页,共89页。第52页/共89页第五十三页,共89页。第53页/共89页第五十四页,共89页。例例1-9 1-9 声明一个关于职工工资记录的结构声明一个关于职工工资记录的结构(jigu)(jigu),并使,并使用它。用它。/ Person-salary. cpp / Person-salary. cpp # include # include struct personstruct person char name 20; / char name 20; / 姓名姓名unsigned long id; / unsigned l
10、ong id; / 工号工号 int salary; / int salary; / 工资工资 ; ;第54页/共89页第五十五页,共89页。 Frank Voltaire 12345678 2456第55页/共89页第五十六页,共89页。可以将结构(jigu)变量的地址赋给结构(jigu)指针,结构(jigu)指针通过箭头操作符“-”(也是一种结构(jigu)成员操作符)来访问结构(jigu)成员。第56页/共89页第五十七页,共89页。/ Structure-pointer.cpp # include #include struct person char name 20; unsigne
11、d long id; int salary;第57页/共89页第五十八页,共89页。第58页/共89页第五十九页,共89页。拥有结构数组。要定义结构数组,必须先声明一个结构,然后定义这个结构类型的数组。第59页/共89页第六十页,共89页。struct personchar name 20; unsigned long id; int salary;person allone 100; / 定义定义(dngy)一个一个person 类型类型的数组的数组结构(jigu)数组中,每个元素都是结构(jigu)变量,访问结构(jigu)数组元素中的成员,方法与前类似。第60页/共89页第六十一页,共8
12、9页。union utag int ival; float fval; char *pval; uval;第61页/共89页第六十二页,共89页。if (utype = INT) printf(“%dn”, uval.ival);else if (utype = FLOAT) printf(“%dn”, uval.fval);else if (utype = STRING) printf(“%dn”, uval.pval);elseprintf(“bad type %d in utypen”, utype);第62页/共89页第六十三页,共89页。struct char *name; int
13、flags; int utype; union int ival; float fval; char *pval; uval; symtabNSYM;第63页/共89页第六十四页,共89页。第64页/共89页第六十五页,共89页。第65页/共89页第六十六页,共89页。第66页/共89页第六十七页,共89页。第67页/共89页第六十八页,共89页。第68页/共89页第六十九页,共89页。向对象的双重特点。此外,C + + 也 支 持 抽 象 数 据 类 型(lixng)。为了使写出的算法可读性和可理解性更强, 本书有时还采用了C+语句与自然语言结合的方式来描述算法,有时对算法加以合适的注释。第
14、69页/共89页第七十页,共89页。(5) 健壮性 当输入非法数据时,算法应能作出适当(shdng)的处理,而不应当产生不可预料的结果。第70页/共89页第七十一页,共89页。第71页/共89页第七十二页,共89页。第72页/共89页第七十三页,共89页。第73页/共89页第七十四页,共89页。第74页/共89页第七十五页,共89页。第75页/共89页第七十六页,共89页。第76页/共89页第七十七页,共89页。第77页/共89页第七十八页,共89页。(1) x=x+1 (2) for (i=1; i=n; i+) x=x+1 (3) for (i=1; i=n; i+) for (j=1;
15、i=n;j+) x=x+1解:这三个程序段中均含基本语句解:这三个程序段中均含基本语句x=x+1,各自,各自(gz)所含的次数为所含的次数为1、n 和和n2,所以这三个程序段所表示,所以这三个程序段所表示的算法的时间复杂度分别的算法的时间复杂度分别O(1)、O(n)和和O(n2)依次类推,还有依次类推,还有O(logn)、O(2n)等时间复杂度。等时间复杂度。第78页/共89页第七十九页,共89页。第79页/共89页第八十页,共89页。void BubbleSort(int a , int n) int i, j, flag=1;int temp;for(i=1; in & flag=1; i+) flag=0; (接下页)第80页/共89页第八十一页,共89页。这个算法的时间复杂度随待排
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年交口县教师招聘考试备考试题及答案解析
- 2026福州市第一总医院皮肤病防治院人员控制数公开招聘工作人员5人考试备考试题及答案解析
- 2026交通银行交银施罗德基金管理有限公司社会招聘考试备考题库及答案解析
- 2026江铃新能源汽车有限公司招聘2人笔试备考题库及答案解析
- 2026重庆市第九人民医院招聘38人笔试参考题库及答案解析
- 2026西安交通大学秋季学期校园招聘及职业指导活动预告笔试备考试题及答案解析
- 2026临海市人民政府邵家渡街道办事处下属事业单位公开选聘工作人员1人考试备考试题及答案解析
- 四川兴东投资集团有限公司及所属子公司2026年第二批公开招聘(20人)考试模拟试题及答案解析
- 2026新疆吐鲁番市维吾尔医医院面向社会招聘编制外聘用人员1人考试模拟试题及答案解析
- 2026-吉林文旅集团管培生储备管理岗招聘考试参考题库-含答案
- 2026年高校辅导员经典面试题(含答案)
- 2026年秋北师大版新教材四年级上册数学(全册)知识点清单梳理
- 关于支付拖欠工程款的催办函(8篇)
- 2026八年级劳动国家质量监测考试卷含答案
- 2024版压力容器设计审核题库(综合题)
- 手术室护理人文关怀与沟通技巧
- (2026年)皮内注射技术课件
- 2025版《广东省护理病历书写管理规范(试行)》
- 福建金投集团招聘笔试题目
- 企业新春员工福利礼品选购指南【课件文档】
- 机泵基础知识培训
评论
0/150
提交评论