資料結構 陣列 稀疏矩陣的建立

2021-06-08 04:20:59 字數 2579 閱讀 2734

稀疏矩陣的建立

#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的比稱為矩陣的稀疏因子。當用陣列儲存稀疏矩陣中的元素時,僅有少部分的空間被利用,造成空間的浪費,為了節省儲存空間,可以採用一種壓縮的儲存方法來表示稀疏矩陣。由於非零元素的分布一般是沒有規律的,因此在儲...