数据结构教程第五版课后答案,数据结构李春葆第五版答案
其实数据结构教程第五版课后答案的问题并不复杂,但是又很多的朋友都不太了解数据结构李春葆第五版答案,因此呢,今天小编就来为大家分享数据结构教程第五版课后答案的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!
求数据结构教程(第5版)上机实验题参考答案李春葆
第一题:
第二题:
第三题:
第四题:
第五题:
第六题:
扩展资料
数据的逻辑结构和物理结构是数据结构的两个密切相关的方面,同一逻辑结构可以对应不同的存储结构。算法的设计取决于数据的逻辑结构,而算法的实现依赖于指定的存储结构。
数据结构的研究内容是构造复杂软件系统的基础,它的核心技术是分解与抽象。通过分解可以划分出数据的3个层次;再通过抽象,舍弃数据元素的具体内容,就得到逻辑结构。类似地,通过分解将处理要求划分成各种功能,再通过抽象舍弃实现细节,就得到运算的定义。上述两个方面的结合可以将问题变换为数据结构。
这是一个从具体(即具体问题)到抽象(即数据结构)的过程。然后,通过增加对实现细节的考虑进一步得到存储结构和实现运算,从而完成设计任务。这是一个从抽象(即数据结构)到具体(即具体实现)的过程。
数据结构第一章 绪论答案[2]
()逻辑结构相同但存储不同可以是不同的数据结构例如线性表的逻辑结构属于线性结构采用顺序存储结构为顺序表而采用链式存储结构称为线性链表
()栈和队列的逻辑结构相同其存储表示也可相同(顺序存储和链式存储)但由于其运算集合不同而成为不同的数据结构
()数据结构的评价非常复杂可以考虑两个方面一是所选数据结构是否准确完整的刻划了问题的基本特征;二是是否容易实现(如对数据分解是否恰当;逻辑结构的选择是否适合于运算的功能是否有利于运算的实现;基本运算的选择是否恰当)
评价好的算法有四个方面一是算法的正确性;二是算法的易读性;三是算法的健壮性;四是算法的时空效率(运行)
()见上面题()见上面题()见上面题
()算法的时间复杂性是算法输入规模的函数算法的输入规模或问题的规模是作为该算法输入的数据所含数据元素的数目或与此数目有关的其它参数有时考虑算法在最坏情况下的时间复杂度或平均时间复杂度
()算法是对特定问题求解步骤的描述是指令的有限序列其中每一条指令表示一个或多个操作算法具有五个重要特性有穷性确定性可行性输入和输出
()频度在分析算法时间复杂度时有时需要估算基本操作的原操作它是执行次数最多的一个操作该操作重复执行的次数称为频度
集合线性结构树形结构图形或网状结构逻辑结构存储结构操作(运算)
通常考虑算法所需要的存储空间量和算法所需要的时间量后者又涉及到四方面程序运行时所需输入的数据总量对源程序进行编译所需时间计算机执行每条指令所需时间和程序中指令重复执行的次数
D是数据元素的有限集合 S是D上数据元素之间关系的有限集合
数据结构这一术语有两种含义一是作为一门课程的名称;二是作为一个科学的概念作为科学概念目前尚无公认定义一般认为讨论数据结构要包括三个方面一是数据的逻辑结构二是数据的存储结构三是对数据进行的操作(运算)而数据类型是值的集合和操作的集合可以看作是已实现了的数据结构后者是前者的一种简化情况
见上面题
将学号姓名平均成绩看成一个记录(元素含三个数据项)将个这样的记录存于数组中因一般无增删操作故宜采用顺序存储
typedef struct
{int num;//学号
char name[ ];//姓名
float score;/平均成绩
}node;
node student[ ];
见上面题()
应从两方面进行讨论如通讯录较少变动(如城市私人电话号码)主要用于查询以顺序存储较方便既能顺序查找也可随机查找;若通讯录经常有增删操作用链式存储结构较为合适将每个人的情况作为一个元素(即一个结点存放一个人)设姓名作关键字链表安排成有序表这样可提高查询速度
线性表中的插入删除操作在顺序存储方式下平均移动近一半的元素时间复杂度为O(n);而在链式存储方式下插入和删除时间复杂度都是O()
对算法A和A的时间复杂度T和T取对数得nlog和 logn显然算法A好于A
struct node
{int year month day;};
typedef struct
{int num;//帐号
char name[ ];//姓名
struct node date;//开户年月日
int tag;//储蓄类型如零存一年定期……
float put;//存入累加数;
float interest;//利息
float total;//帐面总数
}count;
()n()n+()n()(n+)(n)/()(n+)(n)/()n
lishixinzhi/Article/program/sjjg/201311/22750
数据结构 (c语言版)胡学纲 课后习题 答案谢谢了,大神帮忙啊
数据结构课程第一章部分习题解答第一章绪论 1-4.什么是抽象数据类型?试用C++的类声明定义“复数”的抽象数据类型。要求(1)在复数内部用浮点数定义它的实部和虚部。(2)实现3个构造函数:缺省的构造函数没有参数;第二个构造函数将双精度浮点数赋给复数的实部,虚部置为0;第三个构造函数将两个双精度浮点数分别赋给复数的实部和虚部。(3)定义获取和修改复数的实部和虚部,以及+、-、*、/等运算的成员函数。(4)定义重载的流函数来输出一个复数。【解答】抽象数据类型通常是指由用户定义,用以表示应用问题的数据模型。抽象数据类型由基本的数据类型构成,并包括一组相关的服务。//在头文件complex.h中定义的复数类#ifndef _complex_h_#define _complex_h_#include class comlex{ public: complex(){ Re= Im= 0;}//不带参数的构造函数 complex( double r){ Re= r; Im= 0;}//只置实部的构造函数 complex( double r, double i){ Re= r; Im= i;}//分别置实部、虚部的构造函数 double getReal(){ return Re;}//取复数实部 double getImag(){ return Im;}//取复数虚部 void setReal( double r){ Re= r;}//修改复数实部 void setImag( double i){ Im= i;}//修改复数虚部 complex& operator=( complex& ob){ Re= ob.Re; Im= ob.Im;}//复数赋值 complex& operator+( complex& ob);//重载函数:复数四则运算 complex& operator–( complex& ob); complex& operator*( complex& ob); complex& operator/( complex& ob); friend ostream& operator<<( ostream& os, complex& c);//友元函数:重载<< private: double Re, Im;//复数的实部与虚部};#endif//复数类complex的相关服务的实现放在C++源文件complex.cpp中#include#include#include“complex.h” complex& complex:: operator+( complex& ob){//重载函数:复数加法运算。 complex* result= new complex( Re+ ob.Re, Im+ ob.Im); return*result;} complex& complex:: operator–( complex& ob){//重载函数:复数减法运算 complex*result= new complex( Re– ob.Re, Im– ob.Im); return* result;} complex& complex:: operator*( complex& ob){//重载函数:复数乘法运算 complex*result= new complex( Re* ob.Re– Im* ob.Im, Im* ob.Re+ Re* ob.Im); return*result;} complex& complex:: operator/( complex&){//重载函数:复数除法查看更多答案>>
好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!