摘要:1.求子串://用sub返回串S的第pos个字符起长度为len的字串 bool SubString(SString &Sub,SString S,int pos,int len){ if(pos+len-1>S.length) return false; //子串范围越界 for(int i=pos
阅读全文
摘要:串的顺序存储结构 #define MAXSIZE 255 typedef struct { //静态数组实现(定长顺序存储) char ch[MAXSIZE]; //每个分量存储一个字符 int length; //串的实际长度 }SString; typedef struct { //动态数组实现
阅读全文
摘要:用栈实现括号匹配:依次扫描所有字符,遇到左括号入栈,遇到右括号则弹出栈顶元素检查是否匹配。 匹配失败的情况: 1.左括号单身; 2.右括号单身; 3.左右括号不匹配; 代码实现: bool brackCheck( char str [] , int length){ SqStack S; InitS
阅读全文
摘要:round 1:逻辑结构 都属于线性表,都是线性结构 roung 2:存储结构 顺序表:优点:支持随机存取、存储密度高; 缺点:大片连续空间分配不方便,改变容量不方便。 链表:优点:离散的小空间分配方便,改变容量方便; 缺点:不可随机存取,存储密度低。 round 3:基本操作(创销增删改查) 1.
阅读全文
摘要:可以进行逆向检索是双链表的一个优势 双链表的结构 typrdef struct DNode{ //定义双链表结点类型 ElemType data; //数据域 struct DNode *prior , *next; //前驱和后继指针 }DNode , *DLinkList; 初始化链表: boo
阅读全文
摘要:不带头结点的单链表的插入操作和带头结点的插入操作基本相同,只是需要把插在第一位的情况单独拎出来考虑,即单独讨论 i = 1 的情况。 if ( i == 1 ) { LNode *s = ( LNode * ) malloc ( sizeof ( LNode * ) ); //申请一个结点空间 s
阅读全文
摘要:基础知识: 1.带头结点的单链表中头结点没有存放数据只存放了指向位序为1的结点的指针(可以近似理解为位序为0 的结点,但实际上结点的位序从1开始); 2.所需结构体的定义 typedef struct LNode{ ElemType data; //数据域 struct LNode *next; /
阅读全文
摘要:struct 和 typedef struct区别:C语言和C++略有区别 首先,C语言中: struct Student{ …… }s1; //s1是一个变量 上面这段代码实际上是将以下两个操作合在了一起: struct Student{ //定义结构体 …… }; struct Student
阅读全文