版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构
数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间关系和操作的学科。图书馆检索书签查阅图书目录卡片:按书名编排的、按作者编排的、按分类编排的…计算机检索时,处理的对象便是这些目录卡片上的书目信息。001高等数学樊映川S01……002理论力学罗远祥L01……003高等数学华罗庚S01……004线性代数栾汝书S02…………………高等数学001,003…理论力学002,…线性代数004,……樊映川S01……华罗庚S01……栾汝书S02……………人机对奕计算机之所以能和人对奕,策略事先存入计算机。对奕过程在一定规则下随机进行,为使计算机灵活对奕,就必须对所有可能发生的情况以及相应的对策都考虑周全,还应能预测发展趋势,甚至最后结局。田径赛田径赛的时间安排问题设有六个比赛项目,规定每个选手至多可参加三个项目,有五人报名参加比赛(如下表所示)设计比赛日程表,使得在尽可能短的时间内完成比赛。解决方法(无向图的着色问题)设用如下六个不同代号代表不同的项目:跳高跳远标枪铅球100米200米ABCDEF用顶点代表比赛项目不能同时进行比赛的项目之间连上一条边。某选手比赛的项目必定有边相连(不能同时比赛)。
F
B王五
A
F
D李四
F
E
C张三
D
C马二
E
B
A丁一项目3项目2项目1姓名AEBFDCF4E3B,D2A,C1比赛项目比赛时间课程主要内容主要内容包括
数组、链接表、栈和队列、递归、树与森林、图、堆与优先队列、集合与搜索结构、排序与散列等。课程基本要求掌握数据结构的概念、使用方法及实现技术;理解算法分析方法(时间代价、空间代价)学习方法预习+复习上课跟着幻灯片充分利用实验课课后必须自己练!TextbookTextbook《DataStructuresandAlgorithmAnalysisinC》
MarkAllenWeissReferencebook《FundamentalofDataStructureinC》EllisHorowitz
UniversityofsouthernCalifornia《数据结构C语言版》严蔚敏清华大学出版社《数据结构的C++伪码实现》
RichardF.Gilberg&BehrouzA.Forouzan,人民邮电出版社数据结构算法与应用-C++语言描述,SartejSahni,机械工业出版社Others/imediaEmail:zmyuan@PatternsofteachingScheduleofteaching以《DataStructuresandAlgorithmAnalysisinC》的顺序讲解,但内容不限于该书!在网上有每次课的幻灯片可下载,请适当记笔记!Methodsofteaching原版教材,英语讲稿/imedia网上课堂进行作业上交,答疑可以在Wiki上讨论!ProgrammingExperiment3节上课,2节上机所有程序均由C语言编写,环境:VisualC++作业平时作业Exercises上机作业ProgrammingTimeDemand[TheformatofProgrammingReport]ScoreLastScore=routine*20%+midsemester*20%+semester*60%LastScore=Routine*20%+Report*30%+Test*50%Chapter1Introduction1.1OverviewDatastructure+Algorithm=ProgrammingThetoolsandtechniquestodesignandimplementlarge-scalecomputersystems:DataabstractionAlgorithmspecificationPerformanceanalysisPerformancemeasurementSystemlifecycleThesystemdevelopmentprocessBasicConceptofdatastructure数据:
是信息的载体,是描述客观事务的数、字符以及所有能输入计算机中并被计算机程序识别和处理的符号的集合。数据的分类:数值性数据非数值性数据数据对象:
将数据按其性质归类到一起,称为数据对象(dataobject),是数据的子集。数据元素:
数据对象中的数据成员称为数据元素,它们具有相同的性质,是数据的基本单位。(例如:结点、顶点、记录等)DatastructureDataStructure={D,R}数据结构由某一数据对象及该对象中所有数据成员之间的关系组成。D为某一数据对象R是该对象中所有数据成员之间的关系的有限集合定义1数据元素之间的相互关系称为结构,带有结构的数据元素的集合称为数据结构。定义2按某种逻辑关系组织起来的一批数据(或称带结构的数据元素的集合)应用计算机语言并按一定的存储表示方式把它们存储在计算机的存储器中,并在其上定义了一个运算的集合。数据结构关心的三方面内容逻辑结构数据元素间抽象化的相互关系(简称为数据结构)。与数据的存储无关,独立于计算机,它是从具体问题抽象出来的数学模型。存储结构(物理结构)数据元素及其关系在计算机存储器中的存储方式。是逻辑结构用计算机语言的实现它依赖于计算机语言。算法逻辑结构-1线性结构Linearstructure仅有一个开始元素,仅有一个最后元素;其余都是内部元素,且都有且仅有一个直接前驱和一个直接后继。线性表B={K,R}K={K0,K1,…,Kn-1}R={r},r={<ki-1,ki>|ki∈K,1<i<n}线性结构的元素存取方式直接存取结构:不用访问元素前驱和后继即可访问该元素,如数组。顺序存取结构:只能从表的第一个元素按顺序访问,如链表。词典结构(广义索引):字典与数组有相同之处,数组通过下标访问,字典通过关键码(key)进行索引访问。逻辑结构-2非线性结构Nonlinearstructure各个数据成员不再保持在一个线性序列中。
每个数据成员可能与零个或多个其他数据成员发生联系。可分为层次结构和群结构。层次结构按层次划分的数据元素的集合,指定层次上的元素,可以有零个或多个处于下一层次上的,直接的所属元素。例如:树结构(树、二叉树、堆)群结构所有元素之间无顺序关系。例:集合就是一种群结构。图结构也属于群结构。存储结构存储结构两方面的内容数据元素自身值的表示(数据域)该结点与其它结点关系的域(链域)四种基本的存储结构顺序存储方法(结构)
sequentialaccess链接存储方法(链式存储结构)
Linkedaccess索引存储方法
Indexingaccess散列存储方法同一种逻辑结构可采用不同的存储方法(以上四种之一或组合),这主要考虑的是运算方便及算法的时空要求。索引存储aprogrammingperformsforreasonablylargeinput
question1.SelectionProblem
agroupofN
todeterminetheKthlargestnumbers
question2.Wordpuzzle
atwodimensionalarrayofletters
alistofwordstofindthewordsinthepuzzle
HowtoestimatetherunningrimeofaprogramforlargeinputsHowtocomparetherunningtimesoftwoprogramswithoutactuallycodingthem.question1.SelectionProblemagroupofNnumbers,todeterminetheKthlargestoneway:(bad)toreadtheNnumbersintoanarraysortthearrayindecreasingorderbysomesimplealgorithmreturntheelementinpositionkanotherway:(better)
toreadthefirstKelementintoanarraysortthearrayindecreasingorderbysomesimplealgorithm(bubblesort)readremainingelementonebyoneifnewelement<theKthelementinthearray
thenignoreit
elseplaceitinitscorrectspotinthearray,bumpingoneoutofthearray.
Untilnoelement
ReturntheKthelementinthearray?N=millionK=500,000question2.Wordpuzzle
Recursivealgorithm【Definition】functionthatisdefinedintermsofitselfiscalledrecursive.
FACTORIALn!=n·(n-1)n>1(0!=1)n!=n·(n-1)·(n-2)…3·2·1MULTIPLYa·b=a·(b-1)+a(a·1=a)a·b=a·(b-1)+a=a·(b-2)+a+a=a·(b-3)+a+a+a…=a+a+…+a+a(btimesaddition)FIBONACCINUMBERfib(n)=nn=0orn=1fib(n)=fib(n-2)+fib(n-1)otherwiseTwofundamentalrulesofrecursion
1.Basecases.Youmustalwayshavesomebasecases,whichcanbesolvedwithoutrecursion.2.Makingprogress.Forthecasesthataretobesolvedrecursively,therecursivecallmustalwaysbetoacasethatmakesprogresstowardabasecase.#include<stdio.h>
int
F(intX)
{
/*1*/
if(X==0)
/*2*/
return0;
else
/*3*/
return2*F(X-1)+X*X;
}
main()
{
printf("F(5)=%d\n",F(5));
return0;
}#include<stdio.h>
intBad(unsignedintN)
{
/*1*/
if(N==0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026专升本法医面试题目及答案
- 高层保密及竞业禁止协议
- 2026-2030管封口机行业市场现状供需分析及重点企业投资评估规划分析研究报告
- 2026-2030中国影像投影仪行业市场发展现状及发展趋势与投资前景研究报告
- 2026年资产评估师土地评估实务操作全真模拟试卷
- 2026年教师资格证教育教学知识与能力冲刺押题试卷
- 2026年卫生专业技术资格中级临床医师《医学影像诊断》模拟试卷
- 海乘培训合同范本填写步骤
- 20 - 项目开发总结报告(PDSR)
- 运动竞赛计划测试试题及答案展示
- 2026年四川省凉山州中考数学真题试卷(含解析)
- 2026年物业管理师(物业管理综合能力)真题试卷(含答案)
- 售楼处装修工程施工组织设计
- 2026苏教版五年级数学上册第一单元第2课《图形的旋转》课件
- 2026年招聘医生心理测试题及答案
- 2026届小升初数学分班考试模拟试卷(含答案详解与评分标准)
- 江苏省南通市2026年重点学校初一入学数学分班考试试题及答案
- 科信大队考试题及答案
- 人工机械劳务分包合同
- 2026年4月26日浙江省事业单位统考《职业能力倾向测验》真题
- 基坑钢管斜支撑安全专项施工方案
评论
0/150
提交评论