資料結構課
#include
#include
#define maxsize 10
typedef
struct
trituplenode;
typedef
struct
tritupletable;
int flag;
// 普通二維矩陣實現
void
easy_way()
}//輸出
printf
("\n-----------------------\n");
printf
("\n輸入的二維矩陣為:\n");
for(i=
0;i)printf
("\n");
}printf
("\n-----------------------\n");
int s,count=0;
// int min,max;
for(j=
0;j//找出這行最小值
s=0;
for(i=
0;i//找出這行有幾個最小值
// printf("min:%d\n",min);
max = min;
for(i=
0;i(k==m-1)
}}}if
(count ==0)
}// sort
//防止使用者亂序輸入
void
tuplesort
(tritupletable *a)}if
(a->data[x]
.i>a->data[x+1]
.i)}
}void inittrituplenode (tritupletable *a)
else
if(i==-1
)break;w:
printf
("輸入矩陣元素的列: ");
scanf
("%d"
,&j);if
(j>a->n)
else
if(i==-1
)break
;printf
("輸入矩陣元素的值: ");
scanf
("%d"
,&val)
; a->data[k]
.i=i;
a->data[k]
.j=j;
a->data[k]
.v=val;
k++;}
tuplesort
(a);
//防止使用者亂序輸入
}void
showmatrix
(tritupletable *a)
else
printf
("0\t");
}printf
("\n");
}}//普通轉置
void
transposesmatrix
(tritupletable *a,tritupletable *b)}}
void
isad
(tritupletable *a,
int x,
int min)
else
}for
(t =
1; t<=a->t; t++)}
}// printf("\n(%d,%d)值為:%d\n",index_x,index_y,tem);if(
(index_x == x)
&&(min == tem)
&&(x!=0)
)}void
find
(tritupletable *a)
else
}// printf("\n第乙個數:%d,%d,%d\n",index_x,index_y,tem);
for(t =
1; t<=a->t; t++)}
}// printf("\n第%d行最小的數:(%d,%d)值為:%d\n",p,index_x,index_y,tem);
// 將最小的這個數的 縱座標 index_y 傳給 轉置矩陣 當作橫座標去找該行最大值 若找到了 這個 index_k
// 並且等於 index_x 則返回說這個是鞍點
isad
(a,index_y,tem);}
if(flag !=1)
}int
main()
忙碌了一下午的萬師傅終於關掉了程式(暴力真香)
測試用例1:
請輸入矩陣最大行數: 4
請輸入矩陣最大列數: 4
請輸入矩陣有效數字的個數: 7
輸入矩陣元素的行: 2
輸入矩陣元素的列: 2
輸入矩陣元素的值: 2
輸入矩陣元素的行: 2
輸入矩陣元素的列: 3
輸入矩陣元素的值: 7
輸入矩陣元素的行: 3
輸入矩陣元素的列: 1
輸入矩陣元素的值: 4
輸入矩陣元素的行: 3
輸入矩陣元素的列: 2
輸入矩陣元素的值: 3
輸入矩陣元素的行: 3
輸入矩陣元素的列: 3
輸入矩陣元素的值: 2
輸入矩陣元素的行: 3
輸入矩陣元素的列: 4
輸入矩陣元素的值: 1
輸入矩陣元素的行: 4
輸入矩陣元素的列: 2
輸入矩陣元素的值: 1
示例1輸出
0 0 0 0
0 2 7 0
4 3 2 1
0 1 0 0
第(3,4)為鞍點值為:1
暴力查詢,相關結構參考
稀疏矩陣的三元組順序儲存
該資料結構的操作主要是陣列的相加 和相乘,這兩個演算法全是我個人所寫,絕無參考,經測試應該少有bug a.h include define false 0 define true 1 define ok 1 define error 0 define max size 100 typedef int...
稀疏矩陣的三元組儲存演算法
稀疏矩陣,是零元素較多的矩陣。一般只要滿足 t 1 3 m n,t是非零元素個數,mn是矩陣行列數,就可以用三元組表示稀疏矩陣,可以節省空間。稀疏矩陣的壓縮儲存採用三元組的方法實現。其儲存規則是 每乙個非零元素佔一行,每行中包含非零元素所在的行號 列號 非零元素的數值。為完整描述稀疏矩陣,一般在第一...
稀疏矩陣(三元組順序表實現)
定義了乙個稀疏矩陣類,有轉置和相乘,相加三個功能,主要是熟悉稀疏矩陣的三元組順序表儲存的一些操作,和一般的矩陣不同的地方,兩個轉置的演算法,第乙個是較容易想到的,書上管它叫 按需點菜 法,就是按一開始列的順序,乙個個轉為新矩陣中行的順序。第二個叫作 按位就坐 法,就是條件兩個輔助陣列,確定每一列中第...