《数据结构》算法实现及解析(第二版)Word版
# include # include # include # define OK 1# define ERROR 0typedef int Status;//串的定长顺序存储结构# define MAX_STR_LEN 40typedef char SString[MAX_STR_LEN + 1];//0号单元存放串的长度Status StrAssign(SString T,char * chars)//生成一个其值等于chars的串T{ int i; if (strlen(chars) > MAX_STR_LEN) { return ERROR; } else { T[0] = strlen(chars); for (i=1; iS[0] || lenS[0]-pos+1) { return ERROR; } for (i=1; i T[0]) { return i - T[0]; } else { return 0; }}int main(void){ int i,* p; SString s1,s2; StrAssign(s1,"aaabaaaab"); printf("主串为:"); StrPrint(s1); StrAssign(s2,"aaaab"); printf("子串为:"); StrPrint(s2); p = (int *)malloc((StrLength(s2) + 1) * sizeof(int)); get_next(s2,p); printf("子串的next的数组为:"); for (i=1; i<=StrLength(s2); ++i) { printf("%d ",* (p+i)); } printf("\n"); i = Index_KMP(s1,s2,1,p); if (i) { printf("主串和子串在第%d个字符处首次匹配\n",i); } else { printf("主串和子串匹配不成功\n"); } get_nextval(s2,p); printf("子串的nextval数组为:"); for (i=1; i<=StrLength(s2); ++i) { printf("%d ",* (p+i)); } printf("\n"); printf("主串和子串在第%d个字符处首次匹配\n",Index_KMP(s1,s2,1,p)); printf("求串s1的从第5个字符起长度为5的子串s2:\n"); SubString(s2,s1,5,5); printf("串s2为:"); StrPrint(s2); return 0;}/*在vc++6.0中的输出结果:------------------------主串为:a a a b a a a a b子串为:a a a a b子串的next的数组为:0 1 2 3 4主串和子串在第5个字符处首次匹配子串的nextval数组为:0 0 0 0 4主串和子串在第5个字符处首次匹配求串s1的从第5个字符起长度为5的子串s2:串s2为:a a a a bPress any key to continue------------------------------*/
请问“《数据结构》,严尉敏,清华大学出版社,1997年(第二版)?...
1 下列数据结构中,能用二分法进行查找的是__A____。
A、顺序存储的有序线性表 B、线性链表 C、二叉链表 D、有序线性链表 解析:二分法查找只适用于顺序存储的有序表。
在此所说的有序表是指线性表中的元素按值非递减排列(即从小到大,但允许相邻元素值相等)。
2 在软件设计中,不属于过程设计工具的是__D____。
A、PDL(过程设计语言) B、PAD图 C、N-S图 D、DFD图 解析:软件设计工具包括:程序流程图、N-S、PAD、HIPO,判定表,PDL(伪码)。
而DFD(数据流图)属于结构化分析工具。
3 在switch(expression)语句中,expression的数据类型不能是__A____。
A、double B、char C、byte D、short 解析:表达式expression只能返回这个几种类型的值:int、byte、short和char。
多分支语句把表达式返回的值依次与每个case子句中的值相比较,如果遇到匹配的值,则执行该case子句后的语句序列。
4 下列叙述中,错误的是__D____。
A、父类不能替代子类 B、子类能够替代父类 C、子类继承父类 D、父类包含子类 5 通过继承实现代码复用: Java中所有的类都是通过直接或间接地继承java.lang.Object类得到的。
继承而得到的类称为子类,被继承的类称为父类。
子类不能继承父类中访问权限为private的成员变量和方法,子类可以重写父类的方法,及命名与父类同名的成员变量。
子类通过隐藏父类的成员变量和重写父类的方法,把父类的状态和行为改变为自身的状态和行为。
注意:子类中重写的方法和父类中被重写的方法要具有相同的名字,相同的参数表和相同的返回类型,只是函数体不同。
由于子类继承了父类所有的属性(私有的除外),所以子类对象可以作为父类对象使用。
程序中凡是使用父类对象的地方,都可以用子类对象来代替。
一个对象可以通过引用子类的实例来调用子类的方法。
java运行时系统根据调用该方法的实例,来决定调用哪个方法。
对子类的一个实例,如果子类重写了父类的方法,则运行时系统调用子类的方法;如果子类继承了父类的方法(未重写),则运行时系统调用父类的方法。
6 自定义表格类中的model部分应实现的接口是___A___。
A、AbstractTableModel B、JTable C、TableModel D、TableModelable 7 下列代码中,将引起编译错误的行是__B____。
1)public class Exercise{ 2) public static void main(String args[]){ 3) float f=0.0; 4) f+=1.0; 5) } 6) } A、第2行 B、第3行 C、第4行 D、第6行 解析:float定义变量赋值时,需要在数值后面加f以标识它为浮点型,让系统知道该给它精确到多少位。
转载请注明出处51数据库 » 数据结构 word版