1. 程式人生 > >第四章數據結構總結

第四章數據結構總結

地址 維數 分配 字符 定義 順序存儲 對稱矩陣 壓縮 個數

串:是由零個或多個字符組成的有限序列;包含字符的個數稱串的長度; 空串:長度為零的串稱空串; 空白串:由一個或多個空格組成的串稱空白串; 子串:串中任意個連續字符組成的子序列稱該串的子串; 主串:包含子串的串稱主串; 子串的首字符在主串中首次出現的位置定義為子串在主串中的位置; 空串是任意串的子串; 任意串是自身的子串; 串常量在程序中只能引用但不能改變其值; 串變量取值可以改變;串的存儲結構:(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代碼的兩個函數思路

第四章數據結構總結