資料結構第五章 行邏輯鏈結的順序表

2021-07-02 21:03:00 字數 1326 閱讀 1309

/*******************行邏輯鏈結的順序表*****************/

#include#include#includeusing namespace std;

#define maxsize 12500 /// 假設非零元個數最大值為12500

#define maxrc 12500 ///假設的每行的個數的最大值12500

#define error -1

typedef struct triple;

typedef struct rlsmatrix;

void scanfrlsmatrix(rlsmatrix &m)}}

///求出rpos的值

int num[maxsize + 1];

if(m.tu)

/**這個求法在快速轉置中也用到了,那個求的是每一列的第乙個非零元的恰到位置

這個改一下

*/}void printfrlsmatrix(rlsmatrix m)

else printf("%3d",0);

}puts("");

}return ;

}/*************演算法5.3************/

int multsmareix(rlsmatrix m,rlsmatrix n,rlsmatrix &q)

/**前mu行,矩陣m每行最後乙個非零元素是m.rpos[arow + 1]-1;

第mu行,矩陣m每行最後乙個非零元素是m.tu;

*/for(int p = m.rpos[arow]; p < tp; ++p)

for(int q = n.rpos[brow]; q < t; ++q)//for q

}/// 求得q中的第crow( = arow)行的非零元

/**就是m行的第乙個非零元,去乘矩陣n的相對應的列q的每乙個非零元

結果儲存在ctemp陣列中。

當矩陣m該行的每乙個非零元p都乘完,

此時ctemp陣列裡儲存的就是q中第一行所有非零元(含零)的結果

*/for(int i=0;i<=4;i++)

printf("%d ",ctemp[i]);

printf("\n");

for(int ccol = 1; ccol <= q.nu; ++ccol)

/// 壓縮儲存該非零元,即把上面求得結果為0的元素去掉

if(ctemp[ccol])// if

}// for arow

}// if

}// multsmareix

int main()

資料結構(第五章)

樹下 第一講一.堆 什麼是堆?在講堆之前,我們先看看什麼是優先佇列。優先佇列 是一種特殊的佇列,從名稱上看,優先,顧名思義,取出的元素是按照一定的優先順序出隊的,而不是元素進入佇列的先後順序。優先佇列的完全二叉樹表示 堆的兩個特性 結構性 用陣列表示的完全二叉樹。有序性 任一結點的關鍵字是其子樹所有...

資料結構筆記 第五章

一.樹的邏輯結構 樹是乙個有限的集合,集合中的元素稱為結點。1 結點的個數為0 稱為空樹。2 結點的個數為1 此節點稱為根節點。3 節點的個數大於1 則除了根結點以外的結點又可分為多個集合,每乙個集合本身其實質上也是一棵樹,並且是根節點的子樹。二.二叉樹的邏輯結構 1 二叉樹的定義 二叉樹首先必須是...

資料結構筆記 第五章

雙親表示法 基本思想 用一維陣列來儲存樹的各個結點 一般 按層序儲存 陣列中的乙個元素對應樹中的乙個 結點,包括結點的資料資訊以及該結點的雙親在數 組中的下標 森林轉換為二叉樹 將森林中的每棵樹轉換成二叉樹 從第二棵二叉樹開始,依次把後一棵二叉樹的根 結點作為前一棵二叉樹根結點的右孩子,當所有二 叉...