数据结构中的串

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第四章串一、单项选择题1.空串与空格字符组成的串的区别在于()。A.没有区别B.两串的长度不相等C.两串的长度相等D.两串包含的字符不相同2.一个子串在包含它的主串中的位置是指()。A.子串的最后那个字符在主串中的位置B.子串的最后那个字符在主串中首次出现的位置C.子串的第一个字符在主串中的位置D.子串的第一个字符在主串中首次出现的位置3.下面的说法中,只有()是正确的。A.字符串的长度是指串中包含的字母的个数B.字符串的长度是指串中包含的不同字符的个数C.若T包含在S中,则T一定是S的一个子串D.一个字符串不能说是其自身的一个子串4.两个字符串相等的条件是()。A.两串的长度相等B.两串包含的字符相同C.两串的长度相等,并且两串包含的字符相同D.两串的长度相等,并且对应位置上的字符相同5.若SUBSTR(S,i,k)表示求S中从第i个字符开始的连续k个字符组成的子串的操作,则对于S=“Beijing&Nanjing”,SUBSTR(S,4,5)=()。A.“ijing”B.“jing&”C.“ingNa”D.“ing&N”6.若INDEX(S,T)表示求T在S中的位置的操作,则对于S=“Beijing&Nanjing”,T=“jing”,INDEX(S,T)=()。A.2B.3C.4D.57.若REPLACE(S,S1,S2)表示用字符串S2替换字符串S中的子串S1的操作,则对于S=“Beijing&Nanjing”,S1=“Beijing”,S2=“Shanghai”,REPLACE(S,S1,S2)=()。A.“Nanjing&Shanghai”B.“Nanjing&Nanjing”C.“ShanghaiNanjing”D.“Shanghai&Nanjing”8.在长度为n的字符串S的第i个位置插入另外一个字符串,i的合法值应该是()。A.i>0B.i≤nC.1≤i≤nD.1≤i≤n+19.字符串采用结点大小为1的链表作为其存储结构,是指()。A.链表的长度为1B.链表中只存放1个字符C.链表的每个链结点的数据域中不仅只存放了一个字符D.链表的每个链结点的数据域中只存放了一个字符二、填空题1.计算机软件系统中,有两种处理字符串长度的方法:一种是___________,第二种是___________________。2.两个字符串相等的充要条件是_____________________和___________________。3.设字符串S1=“ABCDEF”,S2=“PQRS”,则运算S=CONCAT(SUB(S1,2,LEN(S2)),SUB(S1,LEN(S2),2))后的串值为___________________。4.串是指___________________。5.空串是指___________________,空格串是指___________________。三、应用题1、已知模式串p=’abcabaa’,求出p的next数组值和nextval数组值。2.模式串t=‘abcaabbcabcaabdab’,求该模式串的next函数值并写出求值的过程。四、程序填空题1.下列程序判断字符串s是否对称,对称则返回1,否则返回0;如f(abba)返回1,f(abab)返回0;intf(____(1)____){inti=0,j=0;while(s[j])(2)________;for(j--;ij&&s[i]==s[j];i++,j--);return((3)_______)}五、算法设计题1.设有一个长度为s的字符串,其字符顺序存放在一个一维数组的第1至第s个单元中(每个单元存放一个字符)。现要求从此串的第m个字符以后删除长度为t的子串,ms,t(s-m),并将删除后的结果复制在该数组的第s单元以后的单元中,试设计此删除算法。2.设s和t是表示成单链表的两个串,试编写一个找出s中第1个不在t中出现的字符(假定每个结点只存放1个字符)的算法。习题1参考答案一、单项选择题1.B2.D3.C4.D5.B6.C7.D8.C9.D二、填空题1.固定长度,设置长度指针2.两个串的长度相等,对应位置的字符相等3.“BCDEDE”4.含n个字符的有限序列(n≥0)5.不含任何字符的串,仅含空格字符的字符串三、应用题1.j1234567模式串pabcabaaNext[j]0111232Nextval[j]01101322.Next函数值:01112231123456712四、程序填空题1.(1)chars[](2)j++(3)i=j五、算法设计题1.算法描述为:intdelete(charr[],ints,intt,intm)//从串的第m个字符以后删除长度为t的子串{inti,j;for(i=1;i=m;i++)r[s+i]=r[i];for(j=m+t-i;j=s;j++)r[s-t+j]=r[j];return(1);}//delete2.算法思想为:(1)链表s中取出一个字符;将该字符与单链表t中的字符依次比较;(2)当t中有与从s中取出的这个字符相等的字符,则从t中取下一个字符重复以上比较;(3)当t中没有与从s中取出的这个字符相等的字符,则算法结束。设单链表类型为LinkList;注意,此时类型LinkList中的data成分为字符类型。LinkStringfind(s,t)LinkString*s,*t;{LinkString*ps,*pt;ps=s;while(ps!=NULL){pt=t;while((pt!=NULL)&&(ps-data!=pt-data))pt=pt-next;if(pt==NULL)ps=NULL;else{ps=ps-next;s=ps;}}returns;}//find

1 / 4
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功