摘要: 普通算法: i = pos; j = 1; i = i - j + 2; // 分析:i 减去 j从初值开始后的增量,然后i再加1,即是从 i(相对于初值pos)的下一个位置重新开始子串的匹配。 KMP算法: 1. next[j] 函数分析: " p1 p2 ... pk' " != " p(j-k 阅读全文
posted @ 2021-08-18 23:43 FanSpace 阅读(109) 评论(0) 推荐(0)
摘要: 长度运算符 sizeof( ) 是一个单目运算符,用来返回变量或数据类型的字节长度。 作用:使用长度运算符可以增强程序的可移植性,使之不受具体计算机数据类型长度的限制。 例:int a; sizeof(a); // 求整型变量a的长度,值为 4(bytes); 例:sizeof(int) 整型的长度 阅读全文
posted @ 2021-08-17 19:36 FanSpace 阅读(246) 评论(0) 推荐(0)
摘要: 1. Unix Unix 系统提供的C编译器通常来自一些其他源,然后以cc命令作为编译器的别名。 编译C源程序文件命令:cc basename.c --> 生成可执行文件 a.out --> 运行该文件命令,只需输入:a.out Mac (Macintosh) 的Terminal中编译C命令:cc 阅读全文
posted @ 2021-08-16 15:44 FanSpace 阅读(194) 评论(0) 推荐(0)
摘要: ClearStack()功能:删除栈中元素,但不释放栈空间。 在编写函数 void LineEdit() (功能:行编辑程序)时,明确了ClearStack()的功能是删除栈中的所有元素,但并不释放栈空间; 阅读全文
posted @ 2021-08-15 20:35 FanSpace 阅读(112) 评论(0) 推荐(0)
摘要: 1. 什么是链表? 链表是通过指针将一个个数据元素链接起来的线性表。 阅读全文
posted @ 2021-08-13 10:02 FanSpace 阅读(33) 评论(0) 推荐(0)
摘要: 1. 调用自定义构造函数测试 1)调用语句形式; 类中定义了拷贝构造函数,使用下列两种形式均调用拷贝构造函数; String s4(s2); String s2 = s1; 2)深拷贝原理测试:普通变量拷贝、指针变量拷贝; String s5; //调用构造函数String(); 整型变量 s5.l 阅读全文
posted @ 2021-08-13 09:12 FanSpace 阅读(43) 评论(0) 推荐(0)
摘要: 1. C++ 拷贝构造函数被调用的情形: 1)已存在对象初始化新创建的对象; 2)类对象作为形参,接受实参值; 原理:栈中创建的局部对象; 3)函数返回值为类对象;原理:创建的临时返回对象; 2. 两种重要的数据结构在具体实现上的问题总结(在此先仅讨论它们的链式表示) 1)链队列 首先明确队列进出元 阅读全文
posted @ 2021-08-12 20:54 FanSpace 阅读(245) 评论(0) 推荐(0)
摘要: 在顺序栈中,栈底指针(base)始终指向栈底的位置,若base的值为NULL,则表明栈结构不存在。 由此可知,栈结构不存在实质是base未指向任何存储单元,或者其指向的存储单元被销毁;故对应语句free(base)。 阅读全文
posted @ 2021-08-11 07:59 FanSpace 阅读(138) 评论(0) 推荐(0)
摘要: 重点讨论主题:关于SqStack类型的形参,是选择直接使用SqStack类型的变量,还是选择使用SqStack类型的指针?\ 这点要依据该函数的作用是改变或更新(存值)栈(SqStack)中的值,还是访问(取值)其中的值来考虑:\ 若是向栈中赋值(更新栈),那么使用指针,即函数中的操作即可直接改变原 阅读全文
posted @ 2021-08-10 18:18 FanSpace 阅读(288) 评论(0) 推荐(0)
摘要: 一开始遇到指针是否相等,来作为判断条件,有些陌生;下列判断是完全可以的。 Status StackEmpty(SqStack S) { if (S.top == S.base) return TRUE; return FALSE; } 阅读全文
posted @ 2021-08-10 17:17 FanSpace 阅读(331) 评论(0) 推荐(0)