数据结构习题及答案——严蔚敏

发布时间 : 星期四 文章数据结构习题及答案——严蔚敏更新完毕开始阅读

return(0); }}

void dequeue(elemtype *px) {

elemtype x; top2=0;

while(!empty(s1)) {

pop(s1,&x); push(s2,x); }

pop(s2,&x); while(!empty(s2)) {

pop(s2,&x); push(s1,x); } }

第四章 串 一、选择题

1.下列关于串的叙述中,正确的是( )

(A)一个串的字符个数即该串的长度 (B)一个串的长度至少是1

word文档 可自由复制编辑

(C)空串是由一个空格字符组成的串 (D)两个串S1和S2若长度相同,则这两个串相等

2.字符串\的nextval值为(? )

(A)(0,1,01,1,0,4,1,0,1) (B)(0,1,0,0,0,0,2,1,0,1) (C)(0,1,0,1,0,0,0,1,1) (D)(0,1,0,1,0,1,0,1,1) 3.字符串满足下式,其中head和tail的定义同广义表类似,如head(‘xyz’)= ‘x’,tail(‘xyz’)= ‘yz’,则s=( )。 concat(head(tail(s)),head(tail(tail(s))))= ‘dc’。 (A)abcd (B)acbd (C)acdb (D)adcb

4.串是一种特殊的线性表,其特殊性表现在( ) (A)可以顺序存储 (B)数据元素是一个字符 (C)可以链式存储 (D)数据元素可以是多个字符

5.设串S1=‘ABCDEFG’,s2=‘PQRST’,函数CONCAT(X,Y)返回X和Y串的连接串,SUBSTR(S,I,J)返回串S从序号I开始的J个字符组成的字串,LENGTH(S)返回串S的长度,则CONCAT(SUBSTR(S1,2,LENGTH(S2)),SUBSTR(S1,LENGTH(S2),2))的结果串是( )

(A)BCDEF (B) BCDEFG (C)BCPQRST (D)BCDEFEF 二、算法设计

1.分别在顺序存储和一般链接存储两种方式下,用C语言写出实现把串s1复制到串s2的串复制函数strcpy(s1,s2)。

2.在一般链接存储(一个结点存放一个字符)方式下,写出采用简单算法实现串的模式匹配的C语言函数int L_index(t,p)。

word文档 可自由复制编辑

参考答案: 一、选择题

1. A 2.B 3. D 4. D 5. D 二、算法设计 1.

顺序存储:

#include \#define MAXN 100 char s[MAXN];

int S_strlen(char s[]) { int i;

for(i=0;s[i]!='\\0';i++); return(i); }

void S_strcpy(char s1[],char s2[]) //4.3{ int i;

for(i=0;s1[i]!='\\0';i++) s2[i]=s1[i]; s2[i]='\\0';

word文档 可自由复制编辑

}

一般链接存储: #include \typedef struct node {

char data;

struct node *link; }NODE;

NODE *L_strcpy(NODE *s1) {

NODE *s2,*t1,*t2,*s; if(s1==NULL) return(NULL); else { t1=s1;

t2=(NODE *)malloc(sizeof(NODE)); s2=t2;

while(t1!=NULL) {

s=(NODE *)malloc(sizeof(NODE)); s->data=t1->data; t2->link=s; t2=s;

word文档 可自由复制编辑

联系合同范文客服:xxxxx#qq.com(#替换为@)