稀疏矩陣的建立
#include "stdio.h"
#define max_size 50 /* 最大的稀疏矩陣 */
typedef enum tagfield; //行鍊錶的頭指標和列鍊錶的頭指標
struct entry_node ;
typedef struct matrix u;
}matrix_node;
typedef matrix_node * matrix_pointer;
matrix_pointer hdnode [ max_size ];
matrix_pointer new_node(void) //定義新node,並分配儲存空間
return temp;
}
matrix_pointer create(void)
current_row = 0;
last = hdnode[0];
for ( i = 0; i < num_terms; i++ )
temp = new_node();
temp->tag = entry;
temp->u.entry.row = row;
temp->u.entry.col = col;
temp->u.entry.value = value;
last->right = temp;
last = temp;
/*鏈結到列結點上 */
hdnode[col]->u.next->down = temp;
hdnode[col]->u.next = temp;
}/* 結束上一行結點 */
last->right = hdnode[current_row];
/*結束所有行結點*/
for ( i=0; iu.next->down= hdnode[i];
/*鏈結所有的頭結點 */
for ( i=0; iu.next = hdnode[i+1];
hdnode[num_heads-1]->u.next = node;
node->right = hdnode[0];
}return node;
}
void main()
稀疏矩陣的刪除
#include "stdio.h"
#define max_size 50 /* 最大的稀疏矩陣 */
typedef enum tagfield;
struct entry_node ;
typedef struct matrix u;
}matrix_node;
typedef matrix_node * matrix_pointer;
matrix_pointer hdnode [ max_size ];
matrix_pointer new_node(void)
return temp;
}
matrix_pointer create(void)
current_row = 0;
last = hdnode[0];
for ( i = 0; i < num_terms; i++ )
temp = new_node();
temp->tag = entry;
temp->u.entry.row = row;
temp->u.entry.col = col;
temp->u.entry.value = value;
/* 鏈結到行結點上如圖5-5-5所示 */
last->right = temp;
last = temp;
/*鏈結到列結點上 */
hdnode[col]->u.next->down = temp;
hdnode[col]->u.next = temp;
}/* 結束上一行結點 */
last->right = hdnode[current_row];
/*結束所有行結點*/
for ( i=0; iu.next->down= hdnode[i];
/*鏈結所有的頭結點 */
for ( i=0; iu.next = hdnode[i+1];
hdnode[num_heads-1]->u.next = node;
node->right = hdnode[0];
}return node;
}
void erase(matrix_pointer *node)
x = head; head = head->u.next; free(x);
} /* 刪除剩餘的頭結點*/
y = head;
while ( y != *node )
free(*node);
*node = null;
}void main()
資料結構 陣列和稀疏矩陣
稀疏矩陣 將陣列的所有元素儲存在一塊位址連續的記憶體單元中,這是一種順序儲存結構。性質 1 陣列中的資料元素數目固定 2 陣列中的所有資料元素具有相同的資料型別 3 陣列中的每個資料元素都有一組唯一的下標 4 陣列是一種隨機儲存結構,可隨機訪問陣列中的任意資料元素。一維陣列 loc ai loc a...
資料結構 稀疏矩陣
稀疏矩陣 矩陣中有效資料的個數遠遠小於無效資料的個數,則可以稱之為稀疏矩陣 如果還像以前那樣將每個稀疏矩陣的資料都儲存起來,則會造成記憶體的很大程度的浪費,所以應用特別的儲存方式。稀疏矩陣的壓縮儲存 使用 三元組儲存每乙個有效資料,三元組按原矩陣中的位置,以行優先順序先後順序依次存放。矩陣的轉置 將...
資料結構 稀疏矩陣
簡單的說,設矩陣amn中有s個非零元素,若s遠遠小於矩陣元素的總數,則稱a為稀疏矩陣。s與m x n的比稱為矩陣的稀疏因子。當用陣列儲存稀疏矩陣中的元素時,僅有少部分的空間被利用,造成空間的浪費,為了節省儲存空間,可以採用一種壓縮的儲存方法來表示稀疏矩陣。由於非零元素的分布一般是沒有規律的,因此在儲...