堆栈队列和数组-三元组稀疏矩阵
2014-09-26 19:58
525 查看
#include<iostream> #include <iomanip> #include"windows.h" using namespace std; struct Tripple { int x,y,value; }; struct TrippleMatrix { int r,c,cnt; Tripple* tripples; }; TrippleMatrix* createTrippleMatrix(int r,int c,int maxCnt) { TrippleMatrix* p = (TrippleMatrix*)malloc(sizeof(TrippleMatrix)); p->r=r; p->c=c; p->cnt=0; p->tripples=new Tripple[maxCnt]; return p; } TrippleMatrix* transpose(TrippleMatrix* src) { TrippleMatrix* ans =createTrippleMatrix(src->c,src->r,src->cnt); for(int i=1;i<=ans->r;i++) { for(int j=0;j<src->cnt;j++) { if(src->tripples[j].y==i) { Tripple newTripple; newTripple.x=i; newTripple.y=src->tripples[j].x; newTripple.value=src->tripples[j].value; ans->tripples[ans->cnt++]=newTripple; } } } return ans; } void output(TrippleMatrix* src) { int cur=0; for(int i=1;i<=src->r;i++) { for(int j=1;j<=src->c;j++) { if(src->tripples[cur].x==i && src->tripples[cur].y==j) { SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);//彰显非0元 cout<<src->tripples[cur].value<<" "; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);//设置三色相加 cur++; } else cout<<"0 "; } cout<<endl; } } void main() { SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);//设置三色相加 int r=12,c=17,maxCnt=40; TrippleMatrix* m= createTrippleMatrix(r,c,maxCnt); for(int i=1;i<=r;i++) { for(int j=1;j<=c;j++) { if(rand()%10==1 && m->cnt<maxCnt) { m->tripples[m->cnt].x=i; m->tripples[m->cnt].y=j; m->tripples[m->cnt].value=rand()%10; m->cnt++; } } } output(m); cout<<endl; output(transpose(m)); cin>>r; }
相关文章推荐
- 2015年大二上-数据结构-数组与广义表(3)-1.稀疏矩阵的三元组表示
- 数据结构 数组操作 稀疏矩阵采用三元组存储,设计算法求两个矩阵的和。
- 【数组项目3-稀疏矩阵的三元组表示的实现及应用——第9周】
- 5-2-三元组顺序表(稀疏矩阵)-数组和广义表-第5章-《数据结构》课本源码-严蔚敏吴伟民版
- C/C++ 第八周串和数组 (一)稀疏矩阵的三元组表示的实现及应用 项目4—(1)
- 数据结构Java实现——④数组——>稀疏矩阵三元组顺序存储
- 2015年大二上-数据结构-数组与广义表(3)-2.稀疏矩阵的三元组表示
- C/C++ 第八周串和数组 (一)稀疏矩阵的三元组表示的实现及应用 项目4—(2)
- 数据结构Java实现——④数组—>稀疏矩阵三元组顺序存储-->矩阵的倒置
- 第九周 数据结构实践项目——数组和广义表【项目3.1-稀疏矩阵的三元组表示的实现及应用】
- 数组与广义表_稀疏矩阵的压缩存储_三元组做存储结构_矩阵转置
- 数据结构-数组-稀疏矩阵三元组
- 数组与广义表_稀疏矩阵的压缩存储_三元组做存储结构_矩阵相乘
- 第九周项目3-稀疏矩阵三元组表示的实现及应用(1)
- 第八周(2) 项目3.1-稀疏矩阵的三元组表示的实现及应用
- 第九周 项目3 :稀疏矩阵的三元组表示的实现及应用(2)
- 第九周项目3-稀疏矩阵的三元组表示的实现及应用(2)
- 第9周项目3-稀疏矩阵的三元组表示的实现及应用(1)
- 使用JavaScript的数组实现数据结构中的队列与堆栈
- JavaScript的数组实现队列与堆栈的方法