精华内容
下载资源
问答
  • 数据结构C语言版习题详细的答案目录第 1 章 绪论 11.1简述下列术语:数据,数据元素、数据对象、数据结构、存储结构、数据类型和抽象数据类型。 1第2 章 线性表 9第3 章 栈和队列 36第4 章 串 65以下是关于广义表...

    数据结构C语言版习题详细的答案

    目录

    第 1 章 绪论 1

    1.1简述下列术语:数据,数据元素、数据对象、数据结构、存储结构、数据类型和抽

    象数据类型。 1

    第2 章 线性表 9

    第3 章 栈和队列 36

    第4 章 串 65

    以下是关于广义表算法涉及的描述及方法 83

    6 章 树和二叉树 86

    第7 章 图 109

    第9 章 查找 111

    第 1 章 绪论

    1.1 简述下列术语:数据,数据元素、数据对象、数据结构、存储结构、数据类型和抽象数据类型。

    解:数据是对客观事物的符号表示。在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符

    号的总称。

    数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。

    数据对象是性质相同的数据元素的集合,是数据的一个子集。

    数据结构是相互之间存在一种或多种特定关系的数据元素的集合。

    存储结构是数据结构在计算机中的表示。

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

    抽象数据类型是指一个数学模型以及定义在该模型上的一组操作。是对一般数据类型的扩展。

    1.2 试描述数据结构和抽象数据类型的概念与程序设计语言中数据类型概念的区别。

    解:抽象数据类型包含一般数据类型的概念,但含义比一般数据类型更广、更抽象。一般数据类型由

    具体语言系统内部定义,直接提供给编程者定义用户数据,因此称它们为预定义数据类型。抽象数据类型

    通常由编程者定义,包括定义它所使用的数据和在这些数据上所进行的操作。在定义抽象数据类型中的数

    据部分和操作部分时,要求只定义到数据的逻辑结构和操作说明,不考虑数据的存储结构和操作的具体实

    现,这样抽象层次更高,更能为其他用户提供良好的使用接口。

    1.3 设有数据结构(D,R),其中

          

    D d 1,d 2,d 3,d 4 ,R r ,r d 1,d 2 , d 2,d 3 , d 3,d 4

    试按图论中图的画法惯例画出其逻辑结构图。

    解:

    1.4 试仿照三元组的抽象数据类型分别写出抽象数据类型复数和有理数的定义(有理数是其分子、分母均

    为自然数且分母不为零的分数)。

    解:

    ADT Complex{

    数据对象:D= {r,i|r,i 为实数}

    数据关系:R= {}

    基本操作:

    InitComplex(&C,re,im)

    操作结果:构造一个复数C,其实部和虚部分别为re 和im

    DestroyCmoplex(&C)

    操作结果:销毁复数C

    Get(C,k,&e)

    操作结果:用e 返回复数C 的第k 元的值

    Put(&C,k,e)

    操作结果:改变复数C 的第k 元的值为e

    IsAscending(C)

    操作结果:如果复数C 的两个元素按升序排列,则返回1,否则返回0

    IsDescending(C)

    操作结果:如果复数C 的两个元素按降序排列,则返回1,否则返回0

    Max(C,&e)

    操作结果:用e 返回复数C 的两个元素中值较大的一个

    Min(C,&e)

    操作结果:用e 返回复数C 的两个元素中值较小的一个

    }ADT Complex

    ADT RationalNumber{

    数据对象:D= {s,m|s,m 为自然数,且m 不为0}

    数据关系:R= {}

    基本操作:

    InitRationalNumber(&R,s,m)

    操作结果:构造一个有理数R,其分子和分母分别为s 和m

    DestroyRationalNumber(&R)

    操作结果:销毁有理数R

    Get(R,k,&e)

    操作结果:用e 返回有理数R 的第k 元的值

    展开全文
  • 数据结构复习题答案:绪论 填空题 1、映射 2、线性结构|树形结构|图形结构|非线性结构 3、没有|1|没有|1 4、前驱|1|后续|任意多个 5、任意多个 6、一对一|一对多|多对多 7、有穷性|确定性|可行性 8、错误 9、正确 ...

    if (i*1.0>sqrt(n))

    printf \是一素数\ else

    printf \不是一素数\}

    (2) sum1(int n)

    - 9 -

    {

    int p=1,sum=0,i; for (i=1;i<=n;i++) {

    p*=i; sum+=p; }

    returm (sum); }

    (3) sum2(int n) {

    int sum=0,i,j; for (i=1;i<=n;i++) {

    p=1;

    for (j=1;j<=i;j++) p*=j; sum+=p; }

    return (sum); }

    16、数据的逻辑结构是指_____.

    17、一个数据结构在计算机中的______称为存储结构.

    18、顺序存储方法是把逻辑上_____存储在物理位置上______里;链式存储方法中结点间的逻辑关系是由_____的. 19、数据结构是指研究数据的_____和_____以及它们之间的相互关系,并对这种结构定义相应的_____,设计出相应的_____,从而确保经过这些运算后所得到的新结构是原来的结构类型. 20、一个算法具有5个特性:_____、_____、_____、输入和输出。 21、算法的执行时间是_____的函数。

    22、数据的逻辑结构是从逻辑上描述数据,它与数据的______无关,是独立于计算机的.

    23、数据的逻辑结构被分为____________、____________、____________和____________4种。 24、数据的存储结构被分为____________、____________、____________和____________4种。

    25、在线性结构、树形结构和图形结构中,前驱和后继结点之间分别存在着____________、____________、____________的联系。

    26、一种抽象数据类型包括____________和____________两个部分。 27、从一维数组a[n]中顺序查找出一个最大值元素的时间复杂度为____________,输出一个二维数组b[m][n]中所有元素值的时间复杂度为____________

    28、在下面程序段中,s=s+p语句的执行次数为____________,p*=j语句的执行次数为____________,该程序段的时间复杂度为____________。 int i=0,s=0; while(++i<=n) { int p=1;

    for(int j=1;j<=i;j++) p*=j;

    - 10 -

    s=s+p;}

    29、一个算法的时间复杂度为(3*n*n+2nlog2n+4n-7)/(5n),其数量级表示为____________。

    30、从一个数组a[10]中顺序查找元素时,假定查找每个元素的概率都相同,则进行一次查找运算时的平均查找长度(即同元素的平均比较次数)为____________。

    31、从一个数组a[7]中顺序查找元素时,假定查找第1个元素a[0]的概率为1/3,查找第2个元素a[1]的概率为1/4,其找其余元素的概率均相同,则在查找成功时同元素的平均比较次数为____________。

    32、对于一个n*n的矩阵A的任意矩阵元素a[i][j],按行存储时和按列存储时的地址之差是 ____________。设两种存储时的开始存储地址均为LOC(0,0),每个元素所占存储单元数均为d。

    33、设有一个二维数组A[10][20],按行存放于一个连续的存储空间中,A[0][0]的存储地址是200,每个数组元素占1个存储字,则A[6][2]的存储字地址是____________

    34、设有一个二维数组A[10][20],按列为主序存放于一个连续的存储空间中,A[0][0]的存储地址是200,每个数组元素占1个存储字,则A[6][2]的存储字地址是____________。

    37、在线性表的单链接存储结构中,每个结点包含有两个域,一个叫____________,另一个叫____________域。

    数据结构复习题答案:绪论 填空题 1、映射

    2、线性结构|树形结构|图形结构|非线性结构 3、没有|1|没有|1

    4、前驱|1|后续|任意多个 5、任意多个

    6、一对一|一对多|多对多 7、有穷性|确定性|可行性 8、错误 9、正确 10、O(n*m) 11、O(√n) 12、O(n2) 13、O(log3n) 14、O(n)

    15、O(√n)|O(n)|O(n2)

    16、数据元素之间的逻辑关系 17、映像?表示?映像或表示

    18、相邻的结点|相邻的存储单元|附加的指针字段表示 19、存储结构?物理结构|逻辑结构|运算|算法 20、可行性|有穷性|确定性 21、问题规模

    22、存储结构、物理结构

    23、集合结构、线性结构、树形结构、图形结构(次序无先后) 24、顺序结构、链接结构、索引结构、散列结构(次序无先后) 25、1:1|1:N|M:N 26、数据|操作 27、O(n) | O(m*n)

    - 11 -

    28、n| n(n+1)/2 29、O(n) 30、5.5 31、35/12

    32、(i-j)*(n-1)*d 33、322 34、226 37、值|指针

    数据结构复习题:绪论 问答题

    1、当你为解决某一问题而选择数据结构时,应从哪些方面考虑? 2、简述逻辑结构与存储结构的关系. 3、数据运算是数据结构的一个重要方面,试举例说明两个数据结构的逻辑结构和存储方式完全相同,只是对于运算的定义不同,因而两个结构具有显著不同的特性,则这两个数据结构是不同的.

    数据结构复习题答案:绪论 问答题

    1、解答:通常从两方面考虑:第一是算法所需的存储空间量;第二是算法所需的时间。对算法所需的时间又涉及以下三点:

    (1)程序运行时所需输入的数据总量。 (2)计算机执行每条指令所需的时间。 (3)程序中指令重复执行的次数。

    2、答:数据的逻辑结构反映数据元素之间的逻辑关系(即数据元素之间的关联方式或“邻接关系”),数据的存储结构是数据结构在计算机中的表示,包括数据元素的表示及其关系的表示。 3、答:栈和队列的逻辑结构相同,其存储表示也可相同(顺序存储和链式存储),但由于其运算集合不同而成为不同的数据结构。

    - 12 -

    展开全文
  • 数据结构(c语言版)课后习题答案完整第1章 绪论5.选择题:CCBDCA6.试分析下面各程序段的时间复杂度。(1)O(1)(2)O(m*n)(3)O(n2)(4)O(log3n)(5)因为x++共执行了n-1+n-2+……+1= n(n-1)/2,所以执行时间为O(n2)(6)O...

    数据结构(c语言版)课后习题答案完整版

    第1章 绪论

    5.选择题:CCBDCA

    6.试分析下面各程序段的时间复杂度。

    (1)O(1)

    (2)O(m*n)

    (3)O(n2)

    (4)O(log3n)

    (5)因为x++共执行了n-1+n-2+……+1= n(n-1)/2,所以执行时间为O(n2)

    (6)O()

    第2章 线性表

    1.选择题

    babadbcabdcddac

    2.算法设计题

    (6)设计一个算法,通过一趟遍历在单链表中确定值最大的结点。

    ElemType Max (LinkList L ){

    if(L->next==NULL) return NULL;

    pmax=L->next; //假定第一个结点中数据具有最大值

    p=L->next->next;

    while(p != NULL ){//如果下一个结点存在

    if(p->data > pmax->data) pmax=p;

    p=p->next;

    }

    return pmax->data;

    (7)设计一个算法,通过遍历一趟,将链表中所有结点的链接方向逆转,仍利用原表的存储空间。

    void inverse(LinkList &L) {

    // 逆置带头结点的单链表 L

    p=L->next; L->next=NULL;

    while ( p) {

    q=p->next; // q指向*p的后继

    p->next=L->next;

    L->next=p; // *p插入在头结点之后

    p = q;

    }

    }

    (10)已知长度为n的线性表A采用顺序存储结构,请写一时间复杂度为O(n)、空间复杂度为O(1)的算法,该算法删除线性表中所有值为item的数据元素。

    [题目分析] 在顺序存储的线性表上删除元素,通常要涉及到一系列元素的移动(删第i个元素,第i+1至第n个元素要依次前移)。本题要求删除线性表中所有值为item的数据元素,并未要求元素间的相对位置不变。因此可以考虑设头尾两个指针(i=1,j=n),从两端向中间移动,凡遇到值item的数据元素时,直接将右端元素左移至值为item的数据元素位置。

    void Delete(ElemType A[ ],int n)

    ∥A是有n个元素的一维数组,本算法删除A中所有值为item的元素。

    {i=1;j=n;∥设置数组低、高端指针(下标)。

    while(i

    {while(i

    if(i

    if(i

    }

    [算法讨论] 因元素只扫描一趟,算法时间复杂度为O(n)。删除元素未使用其它辅助空间,最后线性表中的元素个数是j。

    第3章 栈和队列

    1.选择题

    CCDAADABCDDDBCB

    2.算法设计题

    (2)回文是指正读反读均相同的字符序列,如abba”和abdba”均是回文,但good”不是回文。试写一个算法判定给定的字符向量是否为回文。(提示:将一半字符入栈)?根据提示,算法可设计为: //以下为顺序栈的存储结构定义 #define StackSize 100 //假定预分配的栈空间最多为100个元素 typedef char DataType;//假定栈元素的数据类型为字符 typedef struct{  DataType data[StackSize];  int top; }SeqStack;? int IsHuiwen( char *t)  {//判断t字符向量是否为回文,若是,返回1,否则返回0   SeqStack s;   int i , len;   char temp;   InitStack( &s);   len=strlen(t); //求向量长度   for ( i=0; i

    展开全文
  • 严蔚敏《数据结构c语言版)习题集》全答案.doc 免费范文网为全国范文类知名网站,下载全文稍作修改便可使用,即刻完成写稿任务。 已有11人下载 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。...

    else if (m==k-1) f=1; else {

    for(i=0;i<=k-2;i++) temp[i]=0; temp[k-1]=1; //初始化

    for(i=k;i<=m;i++) //求出序列第k至第m个元素的值 {

    sum=0;

    for(j=i-k;j

    f=temp[m]; }

    return OK; }//fib

    分析:通过保存已经计算出来的结果,此方法的时间复杂度仅为O(m^2).如果采用递归编程(大多数人都会首先想到递归方法),则时间复杂度将高达O(k^m). 1.18

    typedef struct{

    char *sport;

    enum{male,female} gender;

    char schoolname; //校名为'A','B','C','D'或'E' char *result; int score; } resulttype; typedef struct{

    int malescore; int femalescore; int totalscore; } scoretype;

    void summary(resulttype result[ ])//求各校的男女总分和团体总分,假设结果已经储存在result[ ]数组中 {

    scoretype score; i=0;

    while(result[i].sport!=NULL) {

    switch(result[i].schoolname) {

    case 'A':

    score[ 0 ].totalscore+=result[i].score;

    if(result[i].gender==0) score[ 0 ].malescore+=result[i].score; else score[ 0 ].femalescore+=result[i].score; break; case 'B':

    score.totalscore+=result[i].score;

    if(result[i].gender==0) score.malescore+=result[i].score; else score.femalescore+=result[i].score; break;

    …… …… …… }

    i++; }

    for(i=0;i<5;i++) {

    printf(\

    printf(\ printf(\ printf(\ }

    }//summary 1.19

    Status algo119(int a[ARRSIZE])//求i!*2^i序列的值且不超过maxint {

    last=1;

    for(i=1;i<=ARRSIZE;i++) {

    a[i-1]=last*2*i;

    if((a[i-1]/last)!=(2*i)) reurn OVERFLOW; last=a[i-1]; return OK; }

    }//algo119

    分析:当某一项的结果超过了maxint时,它除以前面一项的商会发生异常. 1.20

    void polyvalue() {

    float ad; float *p=a;

    printf(\ scanf(\

    printf(\ for(i=0;i<=n;i++) scanf(\ printf(\ scanf(\

    p=a;xp=1;sum=0; //xp用于存放x的i次方 for(i=0;i<=n;i++) {

    sum+=xp*(*p++); xp*=x; }

    printf(\}//polyvalue

    第二章 线性表

    2.10

    Status DeleteK(SqList &a,int i,int k)//删除线性表a中第i个元素起的k个元素 {

    if(i<1||k<0||i+k-1>a.length) return INFEASIBLE;

    for(count=1;i+count-1<=a.length-k;count++) //注意循环结束的条件 a.elem[i+count-1]=a.elem[i+count+k-1]; a.length-=k; return OK; }//DeleteK

    2.11

    Status Insert_SqList(SqList &va,int x)//把x插入递增有序表va中 {

    if(va.length+1>va.listsize) return ERROR; va.length++;

    for(i=va.length-1;va.elem[i]>x&&i>=0;i--) va.elem[i+1]=va.elem[i]; va.elem[i+1]=x; return OK;

    }//Insert_SqList 2.12

    int ListComp(SqList A,SqList B)//比较字符表A和B,并用返回值表示结果,值为正,表示A>B;值为负,表示A

    for(i=1;A.elem[i]||B.elem[i];i++)

    if(A.elem[i]!=B.elem[i]) return A.elem[i]-B.elem[i]; return 0; }//ListComp 2.13

    LNode* Locate(LinkList L,int x)//链表上的元素查找,返回指针 {

    for(p=l->next;p&&p->data!=x;p=p->next); return p; }//Locate 2.14

    int Length(LinkList L)//求链表的长度 {

    for(k=0,p=L;p->next;p=p->next,k++); return k; }//Length 2.15

    void ListConcat(LinkList ha,LinkList hb,LinkList &hc)//把链表hb接在ha后面形成链表hc {

    hc=ha;p=ha;

    while(p->next) p=p->next; p->next=hb; }//ListConcat 2.16 见书后答案. 2.17

    Status Insert(LinkList &L,int i,int b)//在无头结点链表L的第i个元素之前插入元素b {

    p=L;q=(LinkList*)malloc(sizeof(LNode)); q.data=b; if(i==1) {

    q.next=p;L=q; //插入在链表头部 } else {

    while(--i>1) p=p->next;

    q->next=p->next;p->next=q; //插入在第i个元素的位置 }

    }//Insert 2.18

    Status Delete(LinkList &L,int i)//在无头结点链表L中删除第i个元素 {

    if(i==1) L=L->next; //删除第一个元素 else {

    p=L;

    while(--i>1) p=p->next;

    p->next=p->next->next; //删除第i个元素 }

    }//Delete 2.19

    Status Delete_Between(Linklist &L,int mink,int maxk)//删除元素递增排列的链表L中值大于mink且小于maxk的所有元素 {

    p=L;

    while(p->next->data<=mink) p=p->next; //p是最后一个不大于mink的元素 if(p->next) //如果还有比mink更大的元素 {

    q=p->next;

    while(q->datanext; //q是第一个不小于maxk的元素 p->next=q; }

    }//Delete_Between 2.20

    Status Delete_Equal(Linklist &L)//删除元素递增排列的链表L中所有值相同的元素 {

    p=L->next;q=p->next; //p,q指向相邻两元素 while(p->next) {

    if(p->data!=q->data) {

    p=p->next;q=p->next; //当相邻两元素不相等时,p,q都向后推一步 } else {

    while(q->data==p->data) {

    free(q); q=q->next; }

    p->next=q;p=q;q=p->next; //当相邻元素相等时删除多余元素 }//else }//while

    }//Delete_Equal 2.21

    void reverse(SqList &A)//顺序表的就地逆置 {

    for(i=1,j=A.length;iA.elem[j]; }//reverse 2.22

    void LinkList_reverse(Linklist &L)//链表的就地逆置;为简化算法,假设表长大于2 {

    p=L->next;q=p->next;s=q->next;p->next=NULL; while(s->next) {

    q->next=p;p=q;

    q=s;s=s->next; //把L的元素逐个插入新表表头 }

    q->next=p;s->next=q;L->next=s; }//LinkList_reverse

    分析:本算法的思想是,逐个地把L的当前元素q插入新的链表头部,p为新表表头. 2.23

    void merge1(LinkList &A,LinkList &B,LinkList &C)//把链表A和B合并为C,A和B的元素间隔排列,且使用原存储空间 {

    p=A->next;q=B->next;C=A; while(p&&q) {

    s=p->next;p->next=q; //将B的元素插入 if(s) {

    t=q->next;q->next=s; //如A非空,将A的元素插入 }

    p=s;q=t; }//while }//merge1 2.24

    void reverse_merge(LinkList &A,LinkList &B,LinkList &C)//把元素递增排列的链表A和B合并为C,且C中元素递减排列,使用原空间 {

    pa=A->next;pb=B->next;pre=NULL; //pa和pb分别指向A,B的当前元素 while(pa||pb) {

    if(pa->datadata||!pb) {

    pc=pa;q=pa->next;pa->next=pre;pa=q; //将A的元素插入新表 } else {

    pc=pb;q=pb->next;pb->next=pre;pb=q; //将B的元素插入新表 }

    pre=pc; }

    C=A;A->next=pc; //构造新表头 }//reverse_merge

    分析:本算法的思想是,按从小到大的顺序依次把A和B的元素插入新表的头部pc处,最后处理A或B的剩余元素. 2.25

    void SqList_Intersect(SqList A,SqList B,SqList &C)//求元素递增排列的线性表A和B的元素的交集并存入C中 {

    i=1;j=1;k=0;

    while(A.elem[i]&&B.elem[j]) {

    if(A.elem[i]B.elem[j]) j++; if(A.elem[i]==B.elem[j]) {

    C.elem[++k]=A.elem[i]; //当发现了一个在A,B中都存在的元素, i++;j++; //就添加到C中 }

    }//while

    }//SqList_Intersect 2.26

    void LinkList_Intersect(LinkList A,LinkList B,LinkList &C)//在链表结构上重做上题 {

    p=A->next;q=B->next;

    pc=(LNode*)malloc(sizeof(LNode)); while(p&&q) {

    if(p->datadata) p=p->next;

    else if(p->data>q->data) q=q->next; else {

    s=(LNode*)malloc(sizeof(LNode)); s->data=p->data; pc->next=s;pc=s;

    p=p->next;q=q->next; }

    }//while C=pc;

    }//LinkList_Intersect

    以上是由77cn范文大全为大家整理的严蔚敏《数据结构(c语言版)习题集》全答案的相关范文,本文关键词为严蔚,数据结构(c语言版)习题集,答案,说明,本文,是对,严,您可以从右上方搜索框检索更多相关文章,如果您觉得有用,请继续关注我们并推荐给您的好友,您可以在教育文库中查看更多范文。

    严蔚敏《数据结构(c语言版)习题集》全答案.doc

    免费范文网为全国范文类知名网站,下载全文稍作修改便可使用,即刻完成写稿任务。

    已有11人下载

    百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库严蔚敏《数据结构(c语言版)习题集》全答案在线全文阅读。

    本文来自:免费范文网(www.77cn.com.cn) 转载请注明出处!

    展开全文
  • } 2.32 已知有一个单向循环链表 其每个结点中含三个域:pre data和next 其中data为数据域 next为指向后继结点的指针域 pre也为指针域 但它的值为空 试编写算法将此单向循环链表改为双向循环链表 即使pre成为指向...
  • 本文是对严蔚敏《数据结构(c语言版)习题集》一书中所有算法 void summary(resulttype result[ ])//求各校的男女总分和团体总分,设计题目的解决方案,主要作者为 计算机版主一具.以下网 假设结果已经储存在result[ ...
  • 严蔚敏版数据结构C语言版)参考答案第一至三章第一章 绪论1.16void print_descending(int x,int y,int z)//按从大到小顺序输出三个数{ scanf("%d,%d,%d",&x,&y,&z); if(xy; //为表示交换的双目运算符,...
  • 本次新东方在线整理了数据结构C语言版答案详解,各位考生可以对照着题目与答案详解,把计算机专业课的数据结构复习一遍。在程序设计中,常用下列三种不同的出错处理方式:(1) 用exit语句终止执行并报告错误;(2) 以...
  • 数据结构c语言版期末考试复习试题 1《数据结构与算法》复习题一、选择题。1.在数据结构中,从逻辑上可以把数据结构分为 C 。A.动态结构和静态结构 B.紧凑结构和非紧凑结构C.线性结构和非线性结构 D.内部结构和...
  • 第1章 习 题1....3. 选择题1)在数据结构中,从逻辑上可以把数据结构分成( )。A.动态结构和静态结构 B.紧凑结构和非紧凑结构C.线性结构和非线性结构 D.内部结构和外部结构2)与数据元素本身的形式、...
  • 数据结构(C语言版)1800道题及答案[完整]更新时间:2017/1/26 18:59:00浏览量:894手机版数据结构1800例题与答案第一章 绪 论一、选择题(每小题2分)1.算法的计算量的大小称为计算的( B )。 【北京邮电大学2000 二...
  • } } (10)已知长度为n的线性表A采用顺序存储结构,请写一时间复杂度为O(n)、空间复杂度为O(1)的算法,该算法删除线性表中所有值为item的数据元素。 [题目分析] 在顺序存储的线性表上删除元素,通常要涉及到一系列...
  • 数据结构c语言版第2课后习题答案.doc 数据结构(C语言)(第2)课后习题答案李冬梅2015.3I目录第1章绪论1第2章线性表5第3章栈和队列13第4章串、数组和广义表26第5章树和二叉树33第6章图43第7章查找54第8章排序650...
  • 数据结构(c语言版)课后习题答案完整讲解第1章 绪论5.选择题:CCBDCA6.试分析下面各程序段的时间复杂度。(1)O(1)(2)O(m*n)(3)O(n2)(4)O(log3n)(5)因为x++共执行了n-1+n-2+……+1= n(n-1)/2,所以执行时间为O(n2)...
  • 熟悉图的各种存储结构及其构造算法,了解各种存储结构的特点及其选用原则;熟练掌握图的两种遍历算法,熟练掌握图在实际应用中的主要算法:最小生成树算法、最短路径算法、拓扑排序和关键路径算法。 典型例题1在下图...
  • 数据结构(C语言版)习题及答案习 题一、选择题1、一组记录的排序码为(46,79,56,38,40,84),则利用堆排序的方法建立的初始堆为( B )。A、79,46,56,38,40,80 B、84,79,56,38,40,46C、84,79,56,46,40...
  • 数据结构( C语言版) (第2 ) 课后习题答案 李冬梅 2015.3 II 目 录 第 1 章 绪论 1 第 2 章 线性表 5 第 3 章 栈和队列 . 14 第 4 章 串、数组和广义表 . 27 第 5 章 树和二叉树 . 34 第 6 章 图 44 第 7 章 查找 ...
  • 数据结构(c语言版)第五章答案.doc第五章1、设二维数组A【8】【10】是一个按行优先顺序存储在内存中的数组,已知A【0】【0】的起始存储位置为1000,每个数组元素占用4个存储单元,求(1)A【4】【5】的起始存储位置。...
  • 数据结构题集(c语言版)答案及部分代码第七章 图7.14Status Build_AdjList(ALGraph &G)//输入有向图的顶点数,边数,顶点信息和边的信息建立邻接表{InitALGraph(G);scanf("%d",&v);if(v<0) return ERROR; //...
  • 数据结构题集(c语言版)答案及部分代码第十章 内部排序10.23void Insert_Sort1(SqList &L)//监视哨设在高下标端的插入排序算法{k=L.length;for(i=k-1;i;--i) //从后向前逐个插入排序if(L.r[i].key>L.r[i+1]....
  • 清华数据结构习题集答案 (C 语言严蔚敏 )第 1 章 绪论简述下列术语:数据,数据元素、数据对象、数据结构、存储结构、数据类型和抽象数据类型。解:数据 是对客观事物的符号表示。在计算机科学中是指所有能输入到...
  • 第十章 内部排序10.23void Insert_Sort1(SqList &L)//监视哨设在高下标端的插入排序算法{??k=L.length;??for(i=k-1;i;--i) //从后向前逐个插入排序????if(L.r[i].key>L.r[i+1].key)?...L...
  • 数据结构( C语言版) (第2)课后习题答案李冬梅2015.3目 录第 1 章 绪论 1第 2 章 线性表 5第 3 章 栈和队列 14第 4 章 串、数组和广义表 ...
  • 数据结构C语言版部分习题及答案.第二章 习题与解答一 判断题1.线性表的逻辑顺序与存储顺序总是一致的。2.顺序存储的线性表可以按序号随机存取。3.顺序表的插入和删除操作不需要付出很大的时间代价,因为每次操作...
  • 第二章 两种基本的数据结构 2-4. Loc(A[i][j][k])=134+(i*n*p+j*p+k)*2 2-9.第34页 习题(2).9 void Invert(T elements[], int length) {//length数组长度 // elements[]为需要逆序的数组 T e; for (int i=1;i;i++)...
  • 2018考研数据结构C语言版详解答案(17)2017-08-24 17:09|考研集训营《数据结构(C语言)》复习重点在二、三、六、七、九、十章,考试内容两大类:概念,算法,自从计算机专业课统考以后,专业课考试题型分为2类,一类...
  • 第一章 绪论一、选择题1、数据结构是一门研究非数值计算的程序设计问题中计算机的 ① 以及它们之间的 ② 和运算等的学科。(易) ① A、数据元素 B、计算方法 ② A、结构B、关系C、逻辑存储 D、数据映象 C、运算D、...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 51,795
精华内容 20,718
关键字:

数据结构c语言版答案

c语言 订阅
数据结构 订阅