怎样用链表储存的矩阵顺时针旋转90度输出??
#include <iostream>
using namespace std;
typedef struct LinkNode
{
int x;
int y;
int data;
LinkNode* next;
}Node;
int main()
{
int m;
int n;
int data;
Node * head=new Node;
Node * p=new Node;
head->next=p;
cout<<"输入行号和列号"<<endl;
cin>>m>>n;
for(int i=0; i<m; i++)
for(int j=0; j<n; j++)
{
cin>>data;
p->x=i;
p->y=j;
p->data=data;
p->next=new Node;
p=p->next;
}
p=NULL;
p=head->next;
while(p->next){
cout<<p->data<<" ";
if(p->y==n-1) cout<<endl;
p=p->next;
}
cout<<endl;
system("pause");
return 0;
}
这是建好的链表
using namespace std;
typedef struct LinkNode
{
int x;
int y;
int data;
LinkNode* next;
}Node;
int main()
{
int m;
int n;
int data;
Node * head=new Node;
Node * p=new Node;
head->next=p;
cout<<"输入行号和列号"<<endl;
cin>>m>>n;
for(int i=0; i<m; i++)
for(int j=0; j<n; j++)
{
cin>>data;
p->x=i;
p->y=j;
p->data=data;
p->next=new Node;
p=p->next;
}
p=NULL;
p=head->next;
while(p->next){
cout<<p->data<<" ";
if(p->y==n-1) cout<<endl;
p=p->next;
}
cout<<endl;
system("pause");
return 0;
}
这是建好的链表
...全文
相关推荐
C++程序设计矩阵操作.pdf
矩阵旋转是将矩阵按照一定的方向和角度进行旋转操作。矩阵旋转有顺时针与逆时针两个不同的旋转方向,并在每个不同的旋转方向中又有四种不同的角度(90 度、180 度、270 度、360 度)。
C一些有用的程序_C语言_outerpja_
最后,旋转方阵是算法题目中的经典问题,常见于各种编程竞赛。给定一个矩阵,将其顺时针或逆时针旋转90度。在C语言中,可以使用二维数组来表示矩阵,通过多次数组元素的交换来完成旋转操作。
约瑟夫环 C++ 链表
这个问题的基本设定是:人们围成一个圈,从某个人开始按顺时针方向依次报数,数到特定数值的人出圈,然后从下一个人继续报数,直到剩下最后一个人为止。在C++编程中,我们可以利用链表数据结构来解决这个问题。
josephus(链表法)
此外,对于非常大的N和M,可以使用位运算或矩阵快速幂等算法来进一步优化。总的来说,Josephus问题的链表法实现既展示了链表数据结构的强大功能,也考验了程序员对链表操作的理解和控制流程的设计能力。
稀疏矩阵运算器 C++
问题描述如下:人们围成一个圈,按顺时针方向编号,从某个人开始报数,报到特定数值的人出圈,然后从下一个人继续报数,直到只剩一人。在C++中,可以使用链表或数组实现这个过程。


