2024年10月数据结构与算法课后答案(求答案啊 - - 数据结构与算法习题)

 更新时间:2024-10-12

  ⑴数据结构与算法课后答案(求答案啊--数据结构与算法习题

  ⑵求答案啊--数据结构与算法习题

  ⑶ABCD/-E*+.b.c.b.c.c(不确定)d.c.cab.cABCD/+E*-(跟差不多)nynyy(没看懂ynn

  ⑷数据结构与算法试题,高分,求答案啊

  ⑸?已知一株非空二元树,其先根与中根遍历的结果为:先根:ABCDEFGHI?中跟:CBEDAGFHI

  ⑹将此二元树构造出来。

  ⑺答:?????????????????A

  ⑻/????????/

  ⑼C???D??G???H

  ⑽I?????????????????E

  ⑾分析下列程序的运行时间:

  ⑿A)?????void?mystery(intn)

  ⒀{int?i,j,k;

  ⒁for(i=;i《n;i++)

  ⒂for(j=i+;j《=n;j++)

  ⒃for(k=;k《=j;k++)

  ⒄{some?statement?requiring?O()?time;}

  ⒅我的答案是n不过不是很确定

  ⒆Bvoid?podd(int?n)

  ⒇{int?I,j,x,y;

  ⒈for(I=;I《=n;I++)

  ⒉if(odd(I))

  ⒊{for(j=I;j《=n;j++)

  ⒋for(j=;j《=I;j++)

  ⒌?已知数学表达式是(+b)sin(x+)—a/x,求该表达式的波兰表示法的前缀和后缀表示(要求给出过程。

  ⒍表达式对应的二叉树为

  ⒎所以对应的前缀为:-*+bsin+x/a*xx

  ⒏后缀为:b+x+sin*axx*/-

  ⒐在指针实现的线性表L中,实现在线性表L中删除关键字为x的结点。答:

  ⒑intvisited;

  ⒒voiddfs(Graphg,inti)

  ⒓{edgeNode*t;

  ⒔printf(“%d”,i);

  ⒕while(t!=NULL){

  ⒖if(visited==)

  ⒗dfs(g,t-》vno);

  ⒘t=t-》next;

  ⒙在线索二元树中,由结点P求其中根顺序的后继。

  ⒚typedefenum{lLINK,THREAD}PointerTag;?//LINK==;指针,

  ⒛THREAD==;线索

  typedefstructBinThrNode{

  TElemTypedata;

  structBinThrNode*lchilid,*rchild;

  PointerTagltag,rtag;

  }?BinThrNode,*BinThrTree;

  p所指结点前驱的求法:

  当p-》ltag==THREAD时,前驱为p-》lchild;

  当p-》ltag==LINK时,前驱为p-》lchild的最右下方结点。

  在二元查找树F中,实现插入记录R。

  VoidINSERT(recordsR,BST&F)

  {if(F==NULL)

  {F=newcelltype;

  F-》data=R;

  F-》lchild=NULL;

  F-》rchild=NULL;}

  elseif(R,key《F-》data.key)

  INSERT(R,F-》lchild);

  elseif(R,key》F-》data.key)

  INSERT(R,F-》rchild);

  对下面的带权连通无向图,用Prim(普里姆算法,构造一株最小生成树。画出构造过程的每一步。(分

  五设要分类的数据存放在数组A中,要进行堆分类,首先得为其建立一个初始堆,试画出初始建设堆过程中,二元树的变化和数组A的变化。

  年月二级C--数据结构与算法

  假设线性表的长度为n,则最坏情况下:冒泡排序:需要经过n/遍的从前往后扫描和n/遍从后往前扫描,需要比较的次数为n(n-)/。总的时间复杂度为O(n的平方)。快速排序:比较次数也是n(n-)/。总的时间复杂度为O(n的平方)。直接插入排序:所需要比较的次数为n(n-)/。总的时间复杂度为O(n的平方)。希尔排序所需要比较的次数为O(n的.次方)。(时间复杂度小于以上三种)堆排序:最坏情况下,其时间复杂度为O(nlogn)。(小于O(n的平方))。.根据数据结构中各元素之间前后关系的复杂程度,一般数据结构分为两大类:线性结构和非线性结构。如果一个非空的数据结构满足下列两个条件,①有且只有一个根结点②每个结点最多有一个前件,也最多有一个后件。则称该数据结构为线性结构,又称线性表。.算法时间复杂度与空间复杂度没有关系。.所谓算法的时间复杂度,是指执行算法所需要的计算工作量。为了能够比较客观的反映出一个算法的效率,在度量一个算法的工作量时,不仅应该与所用的计算机程序设计语言,以及程序编制者无关,而且还应该与算法实现过程中的许多细节无关。.同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率。算法分析的目的在于选择合适算法和改进算法。.堆排序在平均情况下的时间复杂度与最坏情况下的时间复杂度都是O(nlogn)。.二叉链表:以二叉链表作为树的存储结构。链表中结点的两个链域分别指向该结点的第一个孩子结点和第一个孩子下的一个兄弟结点。?循环链表是链式存储结构,循环队列是线性存储结构。(【×】循环链表是循环队列的链式存储结构)?双向链表也叫双链表,是链表的一种,它的每个数据结点都有两个指针,分别指向直接后继和直接前驱,所以从双链表中的任意一个结点开始都可以很方便地访问它的前驱结点和后继结点。.数据的逻辑结构由两个要素:一是数据元素的集合,通常记为D。二是D上的关系,它反映了D中各元素之间的前后件关系,通常记为R。即一个数据结构可以表示成B=(D,R),其中B表示数据结构,为了反映D中各元素之间的前后件关系,一般用二元组来表示。例如,假如a与b是D中的两个数据,则二元组表示a是b的前件,b是a的后件。?线性结构用图形表示更加直观。例如:R={(,),(,),(,),(,)},结构为:→→→→.快速排序法是一种互换类的排序方法,但由于比冒泡排序的速度快,因此称为快速排序。其基本思想是从线性表中选择一个元素设为t,将线性表后面小于t的元素移到前面,而前面大于t的元素移到后面,结果就将线性表分成了两部分,t插入到分界线的位置处,这个过程称为线性表的分割。?简单插入排序法,是指将无序序列中的各元素依次插入到已经有序的线性表中。?冒泡排序法是一种最简单的交换类排序方法,它是通过相邻数据元素的交换,逐步将线性表变为有序。?后两种元素的移动过程中不会产生新的逆序。.程序可作为算法的一种描述。.为了降低算法的空间复杂度,要求算法尽量采用原地工作,所谓的原地工作是指执行算法时所使用的额外空间固定。?一个算法的空间复杂度一般是指执行这个算法所需要的内存空间,一个算法所占用的存储空间包括程序所占的空间,输入的初始数据所占的空间以及算法执行过程中所需要的额外空间。.能从任意一个结点开始没有重复的扫描到所有结点的数据结构是循环链表。.循环队列是队列的一种存储结构.算法的设计要求包括效率与低存储量,即要考虑算法的时间复杂度与空间复杂度。?算法的复杂度包括时间复杂度和空间复杂度。?时间复杂度:是指执行算法所需要的计算工作量。?空间复杂度:一般是指执行这个算法所需要的内存空间。.栈是一种特殊的线性表。链式结构把每一个存储结点分为数据域与指针域,带链的栈可以通过指针域的变化改变原有的栈的组织数据原则;而顺序栈的栈底指针不变,栈顶指针改变。.堆排序在最坏的情况下需要比较nlogn次。?快速排序,在最坏情况下需要比较n(n-)/次。?顺序查找,在最坏情况下需要比较n次。?最坏情况下,二分查找需要logn(小于n-)?在长度为n的顺序表中寻找最大项/最小项时,比较次数最少为,最多为n-。.如果一个非空的数据结构满足下列两个条件,①有且只有一个根节点②每一个结点最多有一个前件,也最多有一个后件,则称该数据结构为线性结构。如果一个数据结构不是线性结构,则称为非线性结构。.带链栈空的条件是top=bottom=NULL.满二叉树也是完全二叉树,完全二叉树不一定是满二叉树。对于满二叉树和完全二叉树来说,可以按照程序进行顺序存储,不仅节省了空间,又能方便地确定每一个结点的父结点等于左右子结点的位置,但顺序存储结构对于一般的二叉树不适用。.带链栈队头指针与队尾指针相同,且不为空时,队列元素个数为;若为空时,队列元素个数为。带链栈的栈底指针是随栈的操作而动态变化的。.二叉树的链式存储结构,也称为二叉链表。在二叉树中,由于每一个元素可以有两个后件,因此用于存储二叉树的存储结点的指针域有两个,所以二叉链表属于非线性结构。.线性表由一组元素数据元素构成,各元素的数据类型必须相同,矩阵是一个比较复杂的线性表,线性表除了插入和删除运算之外,还可以查找,排序,分解,合并等。数组是长度固定的线性表。.冒泡排序中,在互换两个相邻元素时,只能消除一个逆序;快速排序及希尔排序中,一次交换可以消除多个逆序。.二分法检索的效率比较高,设线性表有n个元素,则最多的比较次数为logn,最少检索次数为。.循环链表的结构具有以下两个特点。一,在循环链表中,增加了一个表头结点,其数据域为任意或者根据需要来设置指针域指向线性表的第一个元素的结点。循环链表的头指针指向表头结点。二、循环链表中最后一个节点的指针域不是空,而是指向表头结点,即在循环链表中所有的结点指针构成一个环状链。.二叉树的存储结构是非线性结构,而完全二叉树是特殊形态的二叉树。采用顺序存储的完全二叉树属于非线性结构。.时间复杂度和计算机运行速度以及存储空间无关。算法的空间复杂度和存储结构无关。数据处理效率与数据的存储结构有关。.线性表,向量,栈,队列都属于线性结构的顺序存储。.循环队列是队列的存储结构。?循环链表是另一种形式的念式存储结构。?(?循环链表是循环队列的链式存储结构。?).完全二叉树的总结点为奇数时,叶子结点是总结点加一再除以二。.在实际处理中,可以用一位数组来存储堆序列中的元素,也可以用完全二叉树来直观的表示堆的结构。在用完全二叉树表示堆时,树中所有非叶子结点值均不小于其左,右子树的根结点值,因为堆顶元素必须为序列的n个元素的最大项,因此其中序并不是有序序列。?多重链表指表中每个结点由两个或两个以上的指针域的链表。如果一个非空的数据结构满足下列两个条件,①有且只有一个根结点,②每个结点最多有一个前件,也最多有一个后件,则称该数据结构为线性结构,所以多重链表不一定是非线性结构。?在计算机中二叉树通常采用链式存储结构,对于满二叉树和完全二叉树来说,可以按层次进行顺序存储。?排序二叉树的中序遍历序列是有序序列。.对于一个固定的规模,算法所执行的基本运算次数还可能与特定的输入有关。.在线性表中寻找最大项时,平均情况下和最坏情况下比较次数都是n-。.在长度为n的顺序表中查找一个元素,假没需要查找的元素有一半的机会在表中,并且如果元素在表中,则出现在表中每个位置上的可能性是相同的。则在平均情况下需要比较的次数大约为_A.n/??B.n??C.n/?D.n/本题的考查知识点是顺序表的存储结构。因为需要查找的元素有一半机会在表中,所以二分之一的情况下平均比较次数为n/,另二分之一的情况下平均比较次数为n。总的平均比较次数为(n/+n)/-n/。故本题答案为A。.设数据结构B=(D,R),其中D={a,b,c,d,e,f}R={(a,b),(b,c),(c,d),(d,e),(e,f),(f,a)}该数据结构为A.线性结构??B.循环队列C.循环链表??D.非线性结构本题的考查知识点是数据结构。如果一个非控的数据结构满足下列两个条件:)有且只有一个根节点;)每一一个结点最多有一一个前件,也最多有一一个后件。则称该数据结构为线性结构。如果一个数据结构不是线性结构,则称之为非线性结构。数据结构B=(D,R)中,每一个结点均有一个前件,不符合“有且只有一个根节点”的条件,所以为非线性结构。故本题答案选D。.某带链的队列初始状态为front=rear=NULL。经过一系列正常的入队与退队操作后,front=rear=。该队列中的元素个数为_A.??B.??C.或??D.不确定本题的考查知识点是带链队列。在初始状态为front=rear=NULL的带链队列入队时,如果插入的结点既是队首结点又是队尾结点,则rear和front同时指向这个结点;否则在循环队列的队尾加入一一个新元素,rear指向新增结点的数据域,rear+,front不变。退队时,在循环队列的排头位置退出一个元素并赋给指定的变量,front指向第二个结点的数据域,front+,rear不变。当front=rear=时,front和rear同时指向这个唯一元素,所以该队列中的元素个数为。故本题答案为A。.若二叉树没有叶子结点,则为空二叉树。.某带链栈的初始状态为top=bottom=NULL,经过一系列正常的入栈与退栈操作后,top=,bottom=。该栈中的元素个数为_____。A.不确定??B.??C.??D.本题考查的知识点是栈。带链的栈是具有栈属性的链表,线性链表的存储单元是不连续的,为把存储空间中一-些离散的空闲存储结点利用起来,把所有空闲的结点组织成一个带链的栈,称为可利用栈。线性链表执行删除操作运算时,被删除的结点可以”回收到可利用栈,对应于可利用栈的入栈运算;线性链表执行插入运算时,需要一个新的结点,可以在可利用栈中取栈顶结点,对应于可利用栈的退栈运算。可利用栈的入栈运算和退栈运算只需要改动top指针即可。因为是不连续的存储空间,所以top指针将不会有规律地连续变化,因此无法据此判断栈中的元素个数。所以本题答案为A。

  以下计算机中数据结构与算法的问题答案是什么

  用线性探测开放地址法处理冲突;H(Jan)=/=;H(Feb)=/=;H(Mar)=/=;H(Apr)=/=;H(May)=/=;冲突;H=+=;H(June)=/=;冲突;H=+=;冲突;H=;H=;H(July)=;H=;H=;H=;H=H(Aug)=;H=;H(Sep)=;H=;H(Oct)=;H=;H=;H=;H=;H(Nov)=;H=;H=;H=;H=;H=H(Dec)=ASL=(+++++++++++)/=/(用链地址法处理冲突H(Jan)=;H(Feb)=;H(Mar)=;H(Apr)=;H(May)=H(June)=;H(July)=;H(Aug)=;;H(Sep)=;H(Oct)=;H(Nov)=;H(Dec)=-》Apr-》Aug-》-》Dec-》Feb-》-》Jan-》June-》July-》Mar-》May-》Oct-》Nov-》-》SepASL=(+++++++++++)/=/

  数据结构与算法(张铭王腾蛟)课后答案高等教育出版社.khdawx.pdf

  者:张铭,王腾蛟,赵海燕编著页数:出版社:北京:高等教育出版社有PDF扫描版

  求数据结构(用面向对象方法与C++语言描述第二版殷人昆主编课后答案

  第一章习题答案、××√、(包含改变量定义的最小范围(数据抽象、信息隐蔽(数据对象、对象间的关系、一组处理数据的操作(指针类型(集合结构、线性结构、树形结构、图状结构(顺序存储、非顺序存储(一对一、一对多、多对多(一系列的操作(有限性、输入、可行性、(A(C(C、语句频度为+(++(+++…+(+++…+n第二章习题答案、(一半,插入、删除的位置(顺序和链式,显示,隐式(一定,不一定(头指针,头结点的指针域,其前驱的指针域、(A(A:E、AB:H、L、I、E、AC:F、MD:L、J、A、G或J、A、G(D(D(C(A、C、头指针:指向整个链表首地址的指针,标示着整个单链表的开始。头结点:为了操作方便,可以在单链表的第一个结点之前附设一个结点,该结点的数据域可以存储一些关于线性表长度的附加信息,也可以什么都不存。首元素结点:线性表中的第一个结点成为首元素结点。、算法如下:intLinser(SeqList*L,intX){inti=,k;if(L-》last》=MAXSIZE-){printf(“表已满无法插入”);return();}while(i《=L-》last&&L-》elem《X)i++;for(k=L-》last;k》=I;k--)L-》elem;L-》elem=X;L-》last++;return();}、算法如下:#defineOK#defineERRORIntLDel(Seqlist*L,inti,intk){intj;if(i《||(i+k)》(L-》last+)){printf(“输入的i,k值不合法”);returnERROR;}if((i+k)==(L-》last+)){L-》last=i-;ruturnOK;}else{for(j=i+k-;j《=L-》last;j++)elem;L-》last=L-》last-k;returnOK;}}、算法如下:#defineOK#defineERRORIntDelet(LInkListL,intmink,intmaxk){Node*p,*q;p=L;while(p-》next!=NULL)p=p-》next;if(mink《maxk||(L-》next-》data》=mink)||(p-》data《=maxk)){printf(“参数不合法”);returnERROR;}else{p=L;while(p-》next-data《=mink)p=p-》next;while(q-》data《maxk){p-》next=q-》next;free(q);q=p-》next;}returnOK;}}、算法如下:intDele(Node*S){Node*p;P=s-》next;If(p==s){printf(“只有一个结点,不删除”);return;}else{if((p-》next==s){s-》next=s;free(p);return;}Else{while(p-》next-》next!=s)P=p-》next;P-》next=s;Free(p);return;}}}第三章习题答案、(、栈有顺序栈和链栈两种存储结构。在顺序栈中,栈顶指针top=-时,栈为空;栈顶指针top=Stacksize-时,栈为满。在带头结点链栈中,栈顶指针top-〉next=NULL,则代表栈空;只要系统有可用空间,链栈就不会出现溢出,既没有栈满。、#include《seqstack.h》#include“stdio.h“voidmain(){charch,temp;SeqStacks;InitStack(&s);scanf(“%c“,&ch);while(ch!=’’&&ch!=’&’){Push(&s,ch);scanf(“%c“,&ch);}while(ch!=’’&&!IsEmpty(&s)){Pop(&s,&temp);scanf(“%c“,&ch);if(ch!=temp)break;}if(!IsEmpty(&s))printf(“no!

  “);else{scanf(“%c“,&ch);if(ch==’’)printf(“yes!

  “);elseprintf(“no!

  “);}}、(功能:将栈中元素倒置。(功能:删除栈中的e元素。(功能:将队列中的元素倒置。第四章习题答案、StrLength(s)操作结果为;SubString(sub,s,,)操作结果为sub=’IAMA’;SubString(sub,s,,)操作结果为sub=’’;StrIndex(s,’A’,)操作结果为;StrReplace(s,’STUDENT’,q)操作结果为’IAMAWORKER’;StrCat(StrCat(sub,t),StrCat(sub,q))操作结果为’IAMAGOODWORKER’;、intStrReplace(SStringS,SstringT,SStringV){inti=;//从串S的第一个字符起查找串Tif(StrEmpty(T))//T是空串returnERROR;do{i=Index(S,T,i);//结果i为从上一个i之后找到的子串T的位置if(i)//串S中存在串T{StrDelete(S,i,StrLength(T));//删除该串TStrInsert(S,i,V);//在原串T的位置插入串Vi+=StrLength(V);//在插入的串V后面继续查找串T}}while(i);returnOK;}第五章习题答案、(数组A共占用*=个字节;(数组A的最后一个元素的地址为;(按行存储时loc(A=+*=(按列存储时loc(A=+*=、((a,b(((c,d((b(b((d、D第六章习题答案、三个结点的树的形态有两个;三个结点的二叉树的不同形态有个。、略、证明:分支数=n+n+…+knk(n=n+n+…+nk(∵n=分支数+(将((代入(得n=n+n+n+…+(k-nk+、注:C结点作为D的右孩子(画图的时候忘记了,不好意思、n=,n=n-=,所以至少有个结点。、(前序和后序相同:只有一个结点的二叉树(中序和后序相同:只有左子树的二叉树(前序和中序相同:只有右子树的二叉树、证明:∵n个结点的K叉树共有nk个链域,分支数为n-(即非空域。∴空域=nk-(n-=nk-n+、对应的树如下:、(答案不唯一哈夫曼树如下图所示:哈夫曼编码如下:频率编码........、对应的二叉树如下:、求下标分别为i和j的两个桔点的最近公共祖先结点的值。typedefintElemType;voidAncestor(ElemTypeA,intn,inti,intj){while(i!=j)if(i》j)i=i/;elsej=j/;printf(“所查结点的最近公共祖先的下标是%d,值是%d“,i,A);}、编写递归算法,对于二叉树中每一个元素值为X的结点,删去以它为根的子树,并释放相应的空间。voidDel_Sub(BiTreeT){if(T-》lchild)Del_Sub(T-》lchild);if(T-》rchild)Del_Sub(T-》rchild);free(T);}voidDel_Sub_x(BiTreeT,intx){if(T-》data==x)Del_Sub(T);else{if(T-》lchild)Del_Sub_x(T-》lchild,x);if(T-》rchild)Del_Sub_x(T-》rchild,x);}}、intWidth(BiTreebt){if(bt==NULL)return();else{BiTreep,Q;intfront=,rear=,last=;inttemp=,maxw=;Q=bt;while(front《=last){p=Q;temp++;if(p-》lchild!=NULL)Q=p-》lchild;if(p-》rchild!=NULL)Q=p-》rchild;{last=rear;if(temp》maxw)maxw=temp;temp=;}}return(maxw);}}第七章习题答案、(顶点的入度为,出度为;顶点的入度为,出度为;顶点的入度为,出度为;顶点的入度为,出度为;顶点的入度为,出度为;顶点的入度为,出度为;(邻接矩阵如下:(邻接表(逆邻接表、答案不唯一(深度优先遍历该图所得顶点序列为:,,,,,边的序列为:(,(,(,(,(,(广度优先遍历该图所得顶点序列为:,,,,,边的序列为:(,(,(,(,(,、(每个事件的最早发生时间:ve()=,ve()=,ve()=,ve()=,ve()=,ve()=,ve()=,ve()=,ve()=,ve()=每个事件的最晚发生时间::vl()=,vl()=,vl()=,vl()=,vl()=,vl()=,vl()=,vl()=,vl()=,vl()=(每个活动的最早开始时间:e(,)=,e(,)=,e(,)=,e(,)=,e(,)=,e(,)=,e(,)=,e(,)=,e(,)=,e(,)=,e(,)=,e(,)=,e(,)=,e(,)=每个活动的最迟开始时间:l(,)=,l(,)=,l(,)=,l(,)=,l(,)=,l(,)=,l(,)=,l(,)=,l(,)=,l(,)=,l(,)=,l(,)=,l(,)=,l(,)=(关键路径如下图所示:、顶点到其余顶点的最短路经为:-〉最短路经为,;长度为-〉最短路经为,,;长度为-〉最短路经为,,;长度为-〉最短路经为,,,;长度为-〉最短路经为,,,,;长度为、A()B()C()D()E()、略、略第八章查找、画出对长度为的有序表进行折半查找的判定树,并求其等概率时查找成功的平均查找长度。解:ASL=(+*+*+*)/=.、解:(插入完成后的二叉排序树如下:ASL=(+*+*+*+*+*)/=.????()ASL=(+*+*+*)=/()、解:哈希表构造如下:H()=(*)%=H()=(*)%=H()=(*)%=H()=(*)%=H()=(*)%=与()冲突H()=(+)%=H()=(*)%=与冲突H()=(+)%=H()=(*)%=与冲突H()=(+)%=H()=(*)%=与冲突H()=(+)%=与冲突H()=(+)%=与冲突H()=(+)%=与冲突H()=(+)%=与冲突H()=(+)%=ASLsu=(*+*+)/=ASLunsu=(+++++++)/=/第九章排序、以关键字序列(,,,,,,,,,为例,手工执行以下排序算法,写出每一趟派结束时的关键字状态。(直接插入排序(希尔排序(增量序列为,,(快速排序(堆排序(归并排序解:(略(增量为的排序结果:,,,,,,,,,增量为的排序结果:,,,,,,,,,增量为的排序结果:,,,,,,,,,(一次划分后:{}{}分别进行:{}{}{}{}{}{}(略、已知一组关键字:(,,,,,,,要求采用快速排序法从小到大排序。请写出每趟排序后的划分结果。解:初始状态:一次划分:{}{}依次划分:{}{}{}、(ABCDE()C()C、对,错,对数据结构课程设计指导书一、设计内容.飞机订票系统(限人完成【问题描述】设计一个飞机订票系统,可以模拟处理飞机订票过程中的各种操作。【基本要求】通过此系统可以实现如下功能:)录入可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定。)查询可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓;可以输入起飞抵达城市,查询飞机航班情况。)订票(订票情况可以存在一个数据文件中,结构自己设定可以订票,如果该航班已经无票,可以提供相关可选择航班。)退票可退票,退票后修改相关数据文件。客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。)修改航班信息当航班信息改变可以修改航班数据文件根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能。.文章(限人完成【问题描述】输入一页文字,程序可以统计出文字、数字、空格的个数。【基本要求】静态存储一页文章,每行最多不超过个字符,共N行;)分别统计出其中英文字母数和空格数及整篇文章总字数;)统计某一字符串在文章中出现的次数,并输出该次数;)删除某一子串,并将后面的字符前移;)用指定的字符串替换某一子串;)存储结构使用线性表,分别用几个子函数实现相应的功能;)输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。)输出形式:①分行输出用户输入的各行字符;②分行输出“全部字母数“、“数字个数“、“空格个数“、“文章总字数“;③输出删除某一字符串后的文章;④输出替换某一字符串后的文章。.宿舍管理查询软件(限人完成【问题描述】为宿舍管理人员编写一个宿舍管理查询软件。【基本要求】)程序设计要求:①采用交互工作方式②建立数据文件,数据文件按关键字(姓名、学号、房号进行排序(冒泡、选择、插入排序等任选一种))查询菜单:(用二分查找实现以下操作)①按姓名查询②按学号查询③按房号查询)输出任一查询结果(可以连续操作.全国交通咨询模拟【问题描述】处于不同目的的旅客对交通工具有不同的要求。例如,因公出差的旅客希望在旅途中的时间尽可能的短,出门旅游的游客则期望旅费尽可能省,而老年旅客则要求中转次数最少。编制一个全国城市间的交通咨询程序,为旅客提供两种或三种最优决策的交通咨询。【设计要求】)提供对城市信息进行(如:添加或删除的功能。)提供对列车时刻表进行(增设或删除的功能。)提供两种最优决策:最快到达和最省钱到达。)旅途中耗费的总时间应该包括中转站的等候时间。)咨询以用户和计算机的对话方式进行。由用户输入起始站、终点站、最优决策原则,输出信息:最快需要多长时间才能到达或者最少需要多少旅费才能到达,并详细说明于何时乘坐哪一趟列车到何地。测试数据:参考教科书.节图.的全国交通图,自行设计列车时刻表。【实现提示】)对全国城市交通图和列车时刻表进行,应该提供文件形式输入和键盘输入两种方式。列车时刻表则需根据交通图给出各个路段的详细信息,例如:基于教科书.节图.的交通图,对从北京到上海的火车,需给出北京至天津、天津至徐州及徐州至上海各段的出发时间、到达时间及票价等信息。)以邻接表作交通图的存储结构,表示边的结构内除含有邻接点的信息外,还应包括交通工具、路程中耗费的时间和花费以及出发和到达的时间等多种属性。.哈夫曼编码/译码器(限人完成【问题描述】设计一个利用哈夫曼算法的编码和译码系统,重复地显示并处理以下项目,直到选择退出为止。【基本要求】)将权值数据存放在数据文件(文件名为data.txt,位于执行程序的当前目录中))分别采用动态和静态存储结构)初始化:键盘输入字符集大小n、n个字符和n个权值,建立哈夫曼树;)编码:利用建好的哈夫曼树生成哈夫曼编码;)输出编码;)设字符集及频度如下表:字符空格ABCDEFGHIJKLM频度字符NOPQRSTUVWXYZ频度【进一步完成内容】)译码功能;)显示哈夫曼树;)界面设计的优化。.走迷宫游戏【问题描述】以一个m×n的长方阵表示迷宫,和分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。【基本要求】.首先用二维数组存储迷宫数据,迷宫数据由用户输入。.一个以链表作存储结构的栈类型,然后编写一个求解迷宫的递归或非递归程序。求得的通路以三元组(i,j,d形式输出,其中:(i,j指示迷宫中的一个坐标,d表示走到下一坐标的方向(东、南、西、北四个方向所用代表数字,自行定义。.可以用多种方法实现,但至少用两种方法,用三种以上可加分。【实现提示】.计算机解迷宫问题通常用的是“穷举求解”方法,即从入口出发,顺着某一个方向进行探索,若能走通,则继续往前进;否则沿着原路退回,换一个方向继续探索,直至出口位置,求得一条通路。假如所有可能的通路都探索到而未能到达出口,则所设定的迷宫没有通路。迷宫的入口点的下标为(,,出口点的下标为(m,n。为处理方便起见,可在迷宫的四周加一圈障碍。对于迷宫的任一位置,均可约定有东、南、西、北四个方向可通。.有一种简单走出迷宫的方法,把手放在右边的墙上开始前进,始终不要把手从墙上移开。如果迷宫向右拐,你也顺着墙向右拐。只要不把手从墙上移开,最终就会到达迷宫的出口。当然这样得到的路径可能不是一个最短的路径,但它可以最终得到结果,换句话说,这种方法走不出迷宫的风险是最小的。.作业评分系统【问题描述】设计一个可以给小学生出题并且可以给出分数的系统软件。【基本要求】利用栈求表达式的值,可供小学生作业,并能给出分数。)建立试题库文件,随机产生n个题目;)题目涉及加减乘除,带括弧的混合运算;)随时可以退出;)给出作业分数。【进一步完成内容】保留历史分数,能回顾历史,给出与历史分数比较后的评价。界面设计的优化。.散列表的设计与实现【问题描述】设计散列表实现电话号码查找系统。【基本要求】)设每个记录有下列数据项:电话号码、用户名、地址;)从键盘输入各记录,分别以电话号码和用户名为关键字建立散列表;)采用一定的方法解决冲突;)查找并显示给定电话号码的记录;)查找并显示给定用户名的记录。【进一步完成内容】)系统功能的完善;)设计不同的散列函数,比较冲突率;)在散列函数确定的前提下,尝试各种不同类型处理冲突的方法,考察平均查找长度的变化。.停车场管理【问题描述】设停车场是一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端,若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等待,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。【基本要求】以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费。栈以顺序结构实现,队列以链表结构实现。【测试数据】设n=,输入数据为:(‘A’,,),(‘A’,,),(‘D’,,),(‘A’,,),(‘A’,,),(‘A’,,),(‘D’,,),(‘D’,,),(‘E’,,)。其中:‘A’表示到达(Arrival;‘D’表示(Departure;‘E’表示输入结束(End。【实现提示】需另设一个栈,临时停放为给要离去的汽车让路而从停车场退出来的汽车,也用顺序存储结构实现。输入数据按到达或离去的时刻有序。栈中每个元素表示一辆汽车,包含两个数据项:汽车的牌照号码和进入停车场的时刻。.八皇后问题【问题描述】求出在一个n×n的棋盘上,放置n个不能互相捕捉的国际象棋“皇后”的所有布局。这是来源于国际象棋的一个问题。皇后可以沿着纵横和两条斜线个方向相互捕捉。如图所示,一个皇后放在棋盘的第行第列位置上,则棋盘上凡打“×”的位置上的皇后就能与这个皇后相互捕捉,也就是下一个皇后不能放的位置。××××××××××Q×××××××××××××××从图中可以得到以下启示:一个合适的解应是在每列、每行上只有一个皇后,且一条斜线上也只有一个皇后。【实现提示】求解过程从空配置开始。在第列至第m列为合理配置的基础上,再配置第m+列,直至第n列配置也是合理时,就找到了一个解。接着改变第n列配置,希望获得下一个解。另外,在任一列上,可能有n种配置。开始时配置在第行,以后改变时,顺次选择第行、第行、…、直到第n行。当第n行配置也找不到一个合理的配置时,就要回溯,去改变前一列的配置。二、时间安排~(一)第周进行。第一天:分析题目,查阅资料;第二天:算法设计、编码;第三天:编码、调试运行;第四天:调试运行,撰写设计报告;;第五天:答辩。三、设计工作要求.对学生的要求()要求学生认真阅读设计任务书,了解所做的设计内容及要求,认真主动完成课设的要求。有问题及时主动通过各种方式与教师联系沟通。()学生要发挥自主学习的能力,充分利用时间,安排好课设的时间计划,并在课设过程中不断检测自己的计划完成情况,及时向教师汇报。()查阅相关的参考文献;独立完成设计任务。()认真撰写课程设计说明书,要求文字通顺、有逻辑性、真正反映设计的水平,设计要有创新。()设计完成后上交相关内容要求:①上交源程序:学生按照课程设计的具体要求所开发的所有源程序(应该放到一个文件夹中。②课程设计说明书:到教务处网站下载课程设计报告纸及封面。格式及要求见附录。.对教师的要求()做好设计题目的选题工作,使题目达到一定的综合性要求,工作量合理;()加强指导,严格考勤、考核;()做好答辩、设计报告的评审以及成绩评定工作。附录:课程设计说明书,格式及要求如下:一、封面;二、目录;三、设计任务书;四、说明书正文,主要内容包括:.设计题目;.设计目的;.算法思想分析;.算法描述与实现;.结论

  谁有《数据结构与算法javascript描述》这本书课后练习题的答案啊

  .数据结构与算法:Java

  数据结构与算法求高手作答.感激不敬

  第题题目类型:单选题题目:数据结构主要研究(可选答案:.数据的逻辑结构.数据的存储结构.数据的逻辑结构和存储结构.数据的逻辑结构、存储结构以及数据在操作上的实现第题题目类型:单选题题目:由于数据的逻辑结构通过不同的存储映像方法可得到不同的存储结构,常见的数据存储结构没有(。可选答案:.邻接存储结构.顺序存储结构.索引存储结构.散列存储结构第题题目类型:单选题题目:我们在讨论某种数据结构时,主要讨论四个方面的问题,①数据的逻辑结构②数据的存储结构③在数据的逻辑结构上定义的数据的基本操作;④基本操作算法的具体实现;这四个问题的讨论的先后顺序应该是怎样的?(可选答案:.①②③④.①③②④.②①③④.②①④③第题题目类型:单选题题目:线性链表是通过何种方式表示元素之间的关系()可选答案:.后继元素地址.元素的存储顺序.左、右孩子地址.元素的相对存储位置第题题目类型:单选题题目:用线性链表存储线性表时,要求存储空间()可选答案:.必须是连续的.连续不连续都可以.部分元素的存储空间必须是连续的.必须是不连续的第题题目类型:单选题题目:对于经常要存取线性表任意指定位置元素的应用,线性表应采用()存储结构。可选答案:.顺序存储结构.链式存储结构.线性链表.栈第题题目类型:单选题题目:具有线性结构的数据结构是()可选答案:.赫夫曼树.栈.图.树第题题目类型:单选题题目:一个栈的入栈序列是abcde,则栈的不可能的输出序列是(。可选答案:.edcba.decba.dceab.abcde第题题目类型:单选题题目:向一个栈顶指针为HS的链栈中将一个S指针所指的结点入栈,执行(。可选答案:.HS-》next=s.S-》next=HS-》next;HS-》next=s.S-》next=HS;HS=s.S-》next=HS;HS=HS-》next第题题目类型:单选题题目:下列说法正确的是()可选答案:.堆栈是在两端操作、先进后出的线性表.堆栈是在一端操作、先进后出的线性表.队列是在一端操作、先进先出的线性表.队列是在两端操作、后进先出的线性表

  数据结构与算法:请使用Kruskal算法求出下图的最小生成树

您可能感兴趣的文章:

相关文章