三元組順序表快速轉置

2021-08-29 05:11:18 字數 1280 閱讀 3872

#include #include #define maxsize 100

/****型別宣告****/

typedef structtriple;

typedef structtsmatrix;

/****函式宣告****/

//初始化三元組順序表

//@flag 1表明需要進行輸入,0表示不需要進行輸入

tsmatrix * init(int flag);

//對順序表進行排序,這個在初始化中用到

void sorttable(tsmatrix *a,int left,int right);

//按照矩陣的形式輸出三元組順序表

void print(tsmatrix *a);

//矩陣轉置,將結果存到b中

void transposetsmatrix(tsmatrix *b,tsmatrix *a);

int main(void)

tsmatrix * init(int flag)

sorttable(a,1,a->nums);

//在輸入時,不一定按照行號公升序輸入,這裡用快速排序進行排序

}return a;

}void print(tsmatrix *a)

}printf("\n");

for(int i=1;i<10*a->cols;++i)

printf("-");

return ;

}void transposetsmatrix(tsmatrix *b,tsmatrix *a);

int position[maxsize]=;

//計算num陣列

for(int i=1;inums+1;++i)

++num[a->data[i].col];

//計算pos陣列,將pos[1]初始化為1

for(int i=2;icols+1;++i)

position[i]=num[i-1]+position[i-1];

int pos;//記錄轉置後的位置

for(int i=1;inums+1;++i)

} void sorttable(tsmatrix *a,int left,int right)

a->data[left]=a->data[i];

a->data[i]=temp;

sorttable(a,left,i-1);

sorttable(a,i+1,right);

return ;

}

三元組稀疏矩陣快速轉置

稀疏矩陣是只儲存非零元的行值 列值 元素值 data 0 來儲存矩陣的行數 列數 非零元個數 struct position struct list void quick transpose list l,list s 記錄每一列第乙個非零元的位置 int col num l.data 0 col ...

三元組矩陣轉置

include include define maxsize 100 非零元的最大個數 define elentype int define status int 返回值型別 define ok 1 define error 0 define overflow 1 稀疏矩陣的三元組儲存結構 type...

稀疏矩陣三元組的快速轉置

include include using namespace std define maxsize 1024 define elemtype int define status int 三元組 typedef struct tripletriple 由三元組組成的表 typedef struct ...