第四章数据结构总结

 串:是由零个或多个字符组成的有限序列;包含字符的个数称串的长度;   空串:长度为零的串称空串;       空白串:由一个或多个空格组成的串称空白串;  子串:串中任意个连续字符组成的子序列称该串的子串;      主串:包含子串的串称主串;   子串的首字符在主串中首次出现的位置定义为子串在主串中的位置;  空串是任意串的子串;    任意串是自身的子串;  串常量在程序中只能引用但不能改变其值;  串变量取值可以改变;串的存储结构:(1)串的顺序存储:串的顺序存储结构称顺序串。7.多维数组:一般用顺序存储的方式表示数组。   常用方式有:  1)行优先顺序,将数组元素按行向量排列;  2)列优先顺序,将数组元素按列向量排列。        矩阵的压缩存储:为多个非零元素分配一个存储空间;对零元素不分配存储空间。 (1)对称矩阵:在一个n阶的方阵A中,元素满足Aij=Aji 0<=i,j<=n-1;称为对称矩阵。元素的总数为:n(n+1)/2;设:I=i或j中大的一个数;J=i或j中小的一个数;则:k=I*(I+1)/2+J;地址计算:LOC(Aij)=LOC(sa[k])=LOC(sa[0])+k*d= LOC(sa[0])+ (I*(I+1)/2+J )*d (2)三角矩阵:以主对角线划分,三角矩阵有上三角和下三角;上三角的主对角线下元素均为常数c;下三角的主对角线上元素均为常数c。元素总数为:(n(n+1)/2)+1;以行优先顺序存放的Aij与SA[k]的关系:上三角阵:k=i*(2n-i+1)/2+j-i;下三角阵:k=i*(i+1)/2+j; (3)对角矩阵:所有的非零元素集中在以主对角线为中心的带状区域,相邻两侧元素均为零。      稀疏矩阵:当矩阵A中有非零元素S个,且S远小于元素总数时,称为稀疏矩阵。对其压缩的方法有顺序存储和链式存储。      广义表:是线性表的推广,广义表是n个元素的有限序列,元素可以是原子或一个广义表,记为LS。

 bool isAlone(char ch)
{  
    ch = tolower(ch);
    if ((ch >= '0' && ch <= '9') || (ch >= 'a'&&ch <= 'z'))//但其实我觉得多写一个(ch >='A' && ch <= 'Z')也没什么。。。
        return false;       
 else
  return true;
}//判断是否为独立的can you
bool isCanyou(char ch[],int n)
{   
    if (ch[n] == 'c'&&ch[n + 1] == 'a'&&ch[n + 2] == 'n'&&ch[n + 3]==' ' && ch[n + 4] == 'y'&&ch[n + 5] == 'o'&&ch[n + 6] == 'u')
 {
     if ((n == 0 || isAlone(ch[n - 1])) && isAlone(ch[n + 7]))
  {           
   return true;
     }
 }
    return false;
}//把s输入给t

//   AI代码的两个函数思路

猜你喜欢

转载自www.cnblogs.com/gjhhaidouS/p/10708367.html