⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 seqsynmematrix.h

📁 里面包含各种数据结构方面的知识,如链表,树,图等 含有vc代码
💻 H
字号:
#include "SeqList.h"						//包含顺序表类

class SeqSynmeMatrix: public SeqList		//n阶对称矩阵顺序表类
//SeqSynmeMatrix类以public方式继承SeqList类
{
	//输出流重载
	friend ostream& operator<< (ostream& out, const SeqSynmeMatrix& a);
private:
	int n;									//矩阵的阶数
public:
	SeqSynmeMatrix(int max);				//构造函数
	~SeqSynmeMatrix(void)					//析构函数
		{};
	
	void CreateMatrix(int nn, DataType item[]);		//创建
	void Add(SeqSynmeMatrix& a);					//矩阵加
};

SeqSynmeMatrix::SeqSynmeMatrix(int max):SeqList(max)
//构造函数。首先调用顺序表类的构造函数,然后定义自身的初始值
{
	n = 0;
}

void SeqSynmeMatrix::CreateMatrix(int nn, DataType item[])
//创建。创建一个置存储下三角元素的n阶对称矩阵顺序表
//矩阵的元素值来自一维数组item,二维矩阵元素以行序优先方式存于item中
{
	n = nn;											//置矩阵阶数

	int i, j, k = 0;
	for(i = 0; i < n; i++)
		for(j = 0; j < n; j++)
			if(i >= j)
			{
				Insert(item[i*n+j], k);
				k++;
			}
}

void SeqSynmeMatrix::Add(SeqSynmeMatrix& a)			//矩阵加
//this = this + a。假设两个矩阵都是对称矩阵
{
	for(int i = 0; i < size; i++)
		list[i] = list[i] + a.list[i];
}

ostream& operator<< (ostream& out, const SeqSynmeMatrix& a)
//输出流重载。
{
	out << "对称矩阵阶数为:" << a.n << endl;
	cout << "矩阵元素为:" << endl;

	int i, j, k = 0, n = a.n;
	for(i = 1; i <= n; i++)
	{
		for(j = 1; j <= n; j++)
			if(i >= j)
			{
				k = i * (i - 1) / 2 + j - 1;
				cout << setw(5) << a.list[k];
			}
			else
			{
				k = j * (j - 1) / 2 + i - 1;
				cout << setw(5) << a.list[k];
			}
		cout << endl;
	}

	return out;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -