資料結構 廣義表和十字鍊錶

2021-07-06 07:04:42 字數 819 閱讀 1098

概念:是線性表的推廣,可以儲存不同的資料結構,一般記為:ls=(a1,a2,...an);ai可以是單個元素也可以是廣義表。

廣義表的資料結構是用鏈結構來實現的。

幾個特殊的廣義表的長度:a=();長度為0,是個空表,d=((),(e),(a,(b,c,d)))是乙個三元素的廣義表

e=(a,e)=(a,(a,(a,.....)))是乙個長度2的廣義表。

a=(())的長度為1,可以分解為表頭和表位均為()。

直接舉例:p(x,y,z)=x^10y^3z^2+2x^6y^3z^2+x^4y^4z+6x^3y^4z+2yz+15

轉化為:p(x,y,z)=((x^10+2x^6)y^3+3x^5y^2)z^2+((x^4+6x^3)y^4+2y)z+15

直接的思想就是:把表示式看做是z的多項式,分解為az^2+bz+15,而a又進一步分解成cy^3+dy^2,c和d又是x的多項式。這樣逐一化解吧

所以p=z((a,2),(b,1),(15,0))其中a=y((

c,3),(d,2)) c=x((1,10),(2,6)) d=x((3,5)) b=y((e,4),(f,1)) e=x((1,4),(6,3)) f=x((2,0))

十字鍊錶是有向圖的一種鏈式表示儲存結構。當然也可以用來儲存稀疏矩陣。

關於十字鍊錶存稀疏矩陣的結構定義:

/*十字鍊錶的結構型別定義如下:*/

typedef struct olnode

olnode, *olink;

typedef struct

crosslist;

這就是漏掉的一點知識點吧。。。

資料結構 演算法5 4 十字鍊錶 建立

include include include include define true 1 define false 0 define ok 1 define error 0 define infeasible 1 define overflow 2 typedef int status typed...

鄰接表 十字鍊錶

每一行都可以看成乙個單鏈表,第一行中,v0 1 3可以得到,v0的出度為v1和v3。鄰接表完整 include using namespace std const int max v 15 邊節點 typedef struct edge node enode,penode 表節點 typedef s...

十字鍊錶(Java)

對於有向圖來說,鄰接表是有缺陷的。關心了出度問題,想要了解入度情況就必須要遍歷整個圖才能知道。反之也一樣。那麼,這一節就介紹有向圖的一種儲存方法,它能將鄰接表和逆鄰接表結合起來 十字鍊錶。定義頂點表結點結構 vertex firstin firstout 其中,firstin表示入邊表頭指標,指向該...