6.5 使用链表实现稀疏矩阵
6.5.1 实现
使用一个数组来储存稀疏矩阵的行,数组的一个元素指向稀疏矩阵的每一行,而每一行的非零元素以链表表示。所以每一个结点只需储存列号和相应的数值即可。
#-*-coding: utf-8-*-
# 使用排序链表的数组来实现稀疏矩阵
from myarray import Array
class SparseMatrix(object):
def __init__(self, numRows, numCols):
self._numCols = numCols # 记录列数
self._listOfRows = Array(numRows) # 每一行的非零元素由排序链表表示,数组索引对应行号
def numRows(self):
return len(self._listOfRows)
def numCols(self):
return self._numCols
def __getitem__(self, ndxTuple):
pass
def __setitem__(self, ndxTuple, value):
# 按照相应的行号和列号找出相应结点,