第一章测试1【单选题】(2分)图书馆的数目检索系统采用关系的数据结构。
A.树形B.图状C.集合D.线性2【单选题】(2分)是相互之间存在一种或多种特定关系的数据元素的集合。
A.数据项B.数据结构C.数据元素D.数据3【单选题】(2分)()是一个值的集合和定义在这个值集上的一组操作的总称。
A.数据项B.数据类型C.数据元素D.数据结构4【单选题】(2分)算法的确定性是指()A.算法中没有逻辑B.在任何情况下,算法不会出现死循环C.算法中的每一条指令必须有确切的含义D.当输入数据非法时,算法也能作出反应或进行处理第二章测试1【单选题】(2分)线性表中的数据元素有一个前驱多个后继。
A.错B.对2【单选题】(2分)用顺序结构存储,删除最后一个结点时,()A.其它B.会移动其它结点位置C.可能会移动其它结点位置D.一定不会移动其它结点位置3【单选题】(2分)链表中逻辑上相邻的元素的物理地址__________相邻。
A.一定不B.必定C.其它D.不一定4【单选题】(2分)1.假设有两个按元素值递增有序排列的线性表A和B,均以单链表作存储结构,请编写算法将A表和B表归并成一个按元素值递减有序(即非递增有序,允许表中含有值相同的元素)排列的线性表C,并要求利用原表(即A表和B表)的结点空间构造C表。
//将合并逆置后的结果放在C表中,并删除B表StatusListMergeOppose_L(LinkList&A,LinkList&B,LinkList&C){LinkListpa,pb,qa,qb;pa=A;pb=B;qa=pa;//保存pa的前驱指针qb=pb;//保存pb的前驱指针pa=pa->next;pb=pb->next;A->next=NULL;C=A;while(pa&&pb){if(pa->data<pb->data){qa=pa;pa=pa->next;qa->next=A->next;//将当前最小结点插入A表表头A->next=qa;}else{qb=pb;pb=pb->next;()//将当前最小结点插入B表表头A->next=qb;}}while(pa){qa=pa;pa=pa->next;qa->next=A->next;A->next=qa;}while(pb){qb=pb;pb=pb->next;qb->next=A->next;A->next=qb;}pb=B;free(pb);returnOK;}A.qa->next=A->nextB.qa->next=A;C.qb->next=A->nextD.qb->next=A;5【单选题】(2分)假设某个单向循环链表的长度大于1,且表中既无头结点也无头指针。
已知s为指向链表中某个结点的指针,试编写算法在链表中删除指针s所指结点的前驱结点。
StatusListDelete_CL(LinkList&S){LinkListp,q;if(S==S->next)returnERROR;q=S;p=S->next;while(){q=p;p=p->next;}q->next=p->next;free(p);returnOK;}A.p==SB.p->next==SC.p!=SD.p->next!=S第三章测试1【单选题】(2分)若以S和X分别表示进栈和退栈操作,则对初始状态为空的栈可以进行的栈操作系列合法的是();A.SXSXXSSXB.SSSXXSXXC.SXSSXXXXD.SXXSXSSX2【单选题】(2分)设计一个迷宫求解的算法,采用___________数据结构最佳。
A.栈B.队列C.线性表的链式存储结构D.线性表的顺序存储结构3【单选题】(2分)循环队列存储在数组A[0..m-1],则出队时的操作为()A.front=(front+1)mod(m-1)B.front=(front+1)modmC.front=(frontmodm)+1D.front=front+14【单选题】(2分)1.试写一个算法,识别依次读入的一个以@为结束符的字符序列是否为形如‘序列1&序列’模式的字符序列。
其中序列1和序列2中都不含字符‘&’,且序列2是序列1的逆序列。
例2如,‘a+b&b+a’是属该模式的字符序列,而‘1+3&3-1’则不是。
BOOLSymmetry(chara[]){inti=0;Stacks;InitStack(s);ElemTypex;while(a[i]!='&'&&a[i]){_________i++;}if(!a[i])returnFALSE;i++;while(a[i]){Pop(s,x);if(x!=a[i]){DestroyStack(s);returnFALSE;}i++;}returnTRUE;}A.Pop(s,a[i++])B.Pop(s,a[i])C.Push(s,a[i++])D.Push(s,a[i])5【单选题】(2分)StatusSymmetryString(char*p){Queueq;if(!InitQueue(q))return0;Stacks;InitStack(s);Ele mTypee1,e2;while(*p){Push(s,*p);EnQueue(q,*p);p++;}while(!StackEmpty(s)){()DeQue ue(q,e2);if(e1!=e2)returnFALSE;}returnOK;}A.Push(s,*p);B.P--P--P--P--P--P--P--P--C.Pop(s,e1);D.EnQueue(q,*p)第四章测试1【单选题】(2分)设s=’IAMASTUDENT’,t=’GOOD’,则Concat(Substring(s,6,2),Concat(t,SubString(s,7, 8)))=()A.AGOODSTUDENTB.AGOODWORKERC.STGOODSTUDENTD.AGOODWORKER2【单选题】(2分)空串与空格串是相同的,这种说法____。
A.不正确B.正确3【单选题】(2分)设串sl=″DataStructureswithJava″,s2=“it″,则子串定位函数index(s1,s2)的值为();A.15B.16C.18D.174【单选题】(2分)串的长度是指()A.串中所含字符的个数B.串中所含不同字母的个数C.串中所含非空格字符的个数D.串中所含不同字符的个数5【判断题】(2分)串是一种数据对象和操作都特殊的线性表。
A.错B.对第五章测试1【单选题】(2分)数组A中,每个元素A的长度为3个字节,行下标i从1到8,列下标j从1到10,从首地址SA开始连续存放在存储器内,存放该数组至少需要的单元数是______。
A.270B.80C.240D.1002【单选题】(2分)假设有二维数组A6×8,每个元素用相邻的6个字节存储,存储器按字节编址。
已知A的起始存储位置为1000,计算数组A按行存储时元素A[14]第一个字节的位置();A.1072B.1030C.1024D.10183【单选题】(2分)若采用三元组压缩技术存储稀疏矩阵,只要把每个元素的行下标和列下标互换,就完成了对该矩阵的转置运算,这种观点()。
A.B.正确4【单选题】(2分)广义表((()),a,((b,c),(),d),(((e))))的长度为();A.3B.5C.2D.45【单选题】(2分)下面说法不正确的是()。
A.广义表的表头总是一个广义表B.广义表可以是一个多层次的结构C.广义表难以用顺序存储结构D.广义表的表尾总是一个广义表6【单选题】(2分)1.试按教科书5.5节图5.10所示的结点结构编写复制广义表的递归算法。
//由广义表L复制广义表TintCopyGList(GList&T,GList&L){if(!L)T=NULL;else{T=newGLNode;if(!T)exit(OVERFLOW);T->tag=L->tag;if(L->tag==ATOM)T->atom=L->atom;else{________CopyGList(T->tp,L->tp);}}returnOK;}A.CopyGList(L->hp,T->hp)B.CopyGList(T->hp,L->hp);C.CopyGList(L->tp,T->tp);D.A.CopyGList(T,L)第六章测试1【单选题】(2分)已知一棵树边的集合为{<I,M>,<I,N>,<E,I>,<B,E>,<B,D>,<A,B>,<G,J>,<G,K>,<C,G>,< C,F>,<H,L>,<C,H>,<A,C>},问这棵树中结点G的双亲结点为()A.IB.CC.BD.A2【单选题】(2分)一棵二叉树中,叶子的个数为10,则其度为2的结点的个数为();A.12B.9C.11D.103【单选题】(2分)假如一棵二叉树的中序遍历结果为ABCD,则结点A和结点D的关系一定不是();A.结点A是结点D的左子树上的结点B.结点A是结点D的双亲结点C.结点A是结点D的右子树上的结点D.结点A与结点D具有共同的双亲的右子树上的结点4【单选题】(2分)已知一棵树边的集合为{<I,M>,<I,N>,<E,I>,<B,E>,<B,D>,<A,B>,<G,J>,<G,K>,<C,G>,< C,F>,<H,L>,<C,H>,<A,C>},将此树转化为二叉树后,E的左孩子为();A.AB.CC.ID.B5【单选题】(2分)一棵哈夫曼树有17个结点,则其叶子结点的个数是_________。
A.9B.8C.7D.106【单选题】(2分)写递归算法,将二叉树中所有结点的左、右子树相互交换。
StatusExchangeBiTree(BiTree&T){BiTreep;if(T){p=T->lchild;T->lchild=T->rchild;T->rchild=p;ExchangeBiTree(T->lchild);__________}returnOK;}A.A.ExchangeBiTree(p);B.ExchangeBiTree(T->rchild);C.ExchangeBiTree(T->lchild->rchild)D.ExchangeBiTree(T);7【单选题】(2分)试写一个算法,为一棵二叉树建立后序线索二叉树。