矩阵乘法
一.程序代码
#include
Script data; node *next; }; class List {
private: node *head; node *tail; int n; public:
List(); void Destroy();
Script Get(int index); void Add(Script data); node * Index(int index); }; List::List() {
head=NULL; tail=NULL; n=0;
}
void List::Add(Script data) {
node *p=new node; p->data=data; p->next=NULL; if(head==NULL) { } else {
tail->next=p; tail=p; head=tail=p;
}
n++; }
void List::Destroy() { }
node *p;
while(head!=NULL) { }
p=head;
head=head->next; delete p;
tail=NULL;
node * List::Index(int index) {
if(index<=n&&index>0) { node *p=head; }
node *p1=head; while(--index) { }
p1=p1->next; p=p1;
return p;
return NULL; }
Script List::Get(int index) {
if(index<=n&&index>0) { }
node *p=Index(index); return p->data;
return -999;
}
class Juzhen { public: int dim; List *list; public:
Juzhen();
Juzhen(int dd,Script *ps); void Destroy();
Juzhen operator *(Juzhen v); Script Get(int m,int n); void Print();
void operator =(Juzhen v);
};
Juzhen::Juzhen() {
dim=0; list=NULL;
}
Juzhen::Juzhen(int d,Script *pn) {
if(d>0) { } else { }
Juzhen(); int i=0; dim=d; list=new List(); int num=d*d; while(num) { list->Add(pn[i]); i++; }
num--;
}
void Juzhen::Destroy() { }
Juzhen Juzhen::operator *(Juzhen v) {
int data=0; Juzhen newV; if(list!=NULL)
list->Destroy(); this->dim=0; list=NULL;
newV.dim=dim; newV.list=new List(); int num=dim*dim; for(int i=0;i for(int j=0;j for(int k=0;k int m=i*dim+k+1,n=j*dim+k+1; data+=list->Get(i*dim+k+1)*v.list->Get(k*dim+j+1); newV.list->Add(data); data=0; return newV; } void Juzhen::operator=(Juzhen v) { dim=v.dim; list=v.list; } Script Juzhen::Get(int m,int n) { int num=(m-1)*dim+n; return list->Get(num); } void Juzhen::Print() { } int main() { int n=0; cout<<\请输入矩阵维数:\for(int i=0;i for(int j=0;j cout< int m=this->Get(i+1,j+1); cout< } cin>>n; Script *A=new Script[n*n]; Script *B=new Script[n*n]; cout< cout<<\请输入矩阵A:\for(int i=0;i for(int j=0;j cout<<\cin>>A[i*n+j]; } cout< cout<<\请输入矩阵B:\for(i=0;i for(int j=0;j cout<<\cin>>B[i*n+j]; Juzhen jz1(n,&A[0]); Juzhen jz2(n,&B[0]); Juzhen jz3=jz1*jz2; cout< cout<<\矩阵A*矩阵B=\jz3.Print(); return 0; 二,结果截图