知识大全 数据结构考研分类复习真题 第四章 答案[19]
Posted 字符
篇首语:别裁伪体亲风雅,转益多师是汝师。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 数据结构考研分类复习真题 第四章 答案[19]相关的知识,希望对你有一定的参考价值。
[题目分析]本题要求字符串s 拆分成字符串s 和字符串s 要求字符串s 按给定长度n格式化成两端对齐的字符串 即长度为n且首尾字符不得为空格字符 算法从左到右扫描字符串s 找到第一个非空格字符 计数到n 第n个拷入字符串s 的字符不得为空格 然后将余下字符复制到字符串s 中
void format (char *s *s *s )//将字符串s 拆分成字符串s 和字符串s 要求字符串s 是长n且两端对齐 char *p=s *q=s ; int i= ; while(*p!= \\ && *p== ) p++;//滤掉s 左端空格 if(*p== \\ ) printf( 字符串s 为空串或空格串\\n );exit( ); while( *p!= \\ && i<n)*q=*p; q++; p++; i++;//字符串s 向字符串s 中复制 if(*p == \\ ) printf( 字符串s 没有%d个有效字符\\n n); exit( ); if(*( q)== ) //若最后一个字符为空格 则需向后找到第一个非空格字符 p ;//p指针也后退 while(*p== &&*p!= \\ ) p++;//往后查找一个非空格字符作串s 的尾字符 if(*p== \\ ) printf( s 串没有%d个两端对齐的字符串\\n n); exit( ); *q=*p; //字符串s 最后一个非空字符 *(++q)= \\ ; //置s 字符串结束标记 *q=s ;p++; //将s 串其余部分送字符串s while (*p!= \\ ) *q=*p; q++; p++; *q= \\ ; //置串s 结束标记
cha138/Article/program/sjjg/201311/22602相关参考
.() ()next[k] .()i=i+ ()j:=j+ ()i:=ij+ ()j:=; ()imt(或i:=ij+) () 程序
.()p的nextval函数值为(p的next函数值为) ()利用KMP(改进的nextval)算法每趟匹配过程如下 第一趟匹配abcaabbabcabaacbacba abcab(i=j=
.任意个连续的字符组成的子序列 . O(m+n) . . .()模式匹配 ()模式串 .()其数据元素都是字符()顺序存储()和链式存储()串的长度相等且两串中对
.()S的next与nextval值分别为和p的next与nextval值分别为和 ()利用BF算法的匹配过程
[题目分析]实现字符串的逆置并不难但本题要求不另设串存储空间来实现字符串逆序存储即第一个输入的字符最后存储最后输入的字符先存储使用递归可容易做到 voidInvertStore(charA[])
6.模式串的next函数定义如下 next[j]= 根据此定义可求解模式串t的next和nextval值如下 .解法同上题其next和nextval值分别为和 .解法同题t串的next和n
[题目分析]本题是对字符串表达式的处理问题首先定义种数据结构符号的类码符号的TOKEN表示变量名表NAMEL和常量表CONSL这四种数据结构均定义成结构体形式数据部分用一维数组存储同时用指针指出数
[题目分析]本题属于查找待查找元素是字符串(长)将查找元素存放在一维数组中二分检索(即折半查找或对分查找)是首先用一维数组的中间元素与被检索元素比较若相等则检索成功否则根据被检索元素大于或小于中间
[题目分析]两个串的相等其定义为两个串的值相等即串长相等且对应字符相等是两个串相等的充分必要条件因此首先比较串长在串长相等的前提下再比较对应字符是否相等 intequal(strtpsstrtp
.[题目分析]本题算法采用顺序存储结构求串s和串t的最大公共子串串s用i指针(<=i<=slen)t串用j指针(<=j<=tlen)算法思想是对每个i(<=i<