-2

大学の先生が尋ねたように、C で疎行列を複数リストで表現するのに大きな問題があります。

画像

私が理解したことには、いくつかの種類のリストがあります。

  • メインのものには、次の行と列へのポインターが含まれています
  • 列と行に 1 つ
  • 要素の 1 つ。

これを実装する方法についての助けをいただければ幸いです。

4

1 に答える 1

2

(それがあなたが求めているものである場合、どのように画像を表現できるかを説明します)
あなたの画像から、3種類のノードといくつかのルールがあることがわかりました:

  • a) 行数と列数の 1 つ (2 ポインター付き)
  • b) 行列のサイズの 1 つ (2 つのポインターと幅と高さ)
  • c) ゼロでない要素の値を持つもの (要素と要素の列値と行値の 2 つのポインター)

ルール:

  1. b) 要素には、最初の行要素と最初の列要素へのポインターがあります。
  2. 各行要素には次の行要素へのポインターがあります (最後の行要素には b) 要素へのポインターがあります)
  3. 各列要素には次の列要素へのポインターがあり、最後の列要素には b) 要素へのポインターがあります。
  4. 各行には、その行の最初の c) 要素を指す 2 番目のポインターがあります。
  5. 各列には、列の最初の c) 要素を指す 2 番目のポインターがあります。
  6. 各要素は次を指します: c) その行の次の要素とその列の次の c) 要素 (行に次の要素がない場合は単に行要素を指し、列に次の要素がない場合は単にcolumn 要素を指す)

各ルールについて、適用できない場合はスキップして、そのポインターを null のままにしておきます

いくつかのカスタムリンク リスト を作成し、ルールを適用することができます
ここに簡単なチュートリアルがあります

于 2012-06-23T11:34:57.167 に答える