队列堆栈和数组-三角矩阵
2014-09-26 19:16
239 查看
#include<iostream> #include <iomanip> using namespace std; enum TriangleTye{leftBottom,leftUp,rightBottom,rightUp}; struct TriangleMatrix { int* nums; int scale; TriangleTye triangleTye; int size; }; TriangleMatrix* createTriangleMatrix(int scale,TriangleTye triangleTye) { int size = scale*(scale+1)/2; TriangleMatrix* p = (TriangleMatrix*)malloc(sizeof(TriangleMatrix)); p->nums = new int[size+1]; p->scale=scale; p->triangleTye=triangleTye; p->size=size; return p; } int getElement(TriangleMatrix* matrix,int i,int j) { switch ((matrix->triangleTye)) { case leftBottom: if(i<j) return 0; else return matrix->nums[i*(i-1)/2+j-1]; break; case leftUp: if(matrix->scale-i+1<j) return 0; else return matrix->nums[matrix->size - ((matrix->scale-i)*(matrix->scale-i+1)/2+(matrix->scale-i+1-j))-1]; break; case rightBottom: if(matrix->scale-i+1>j) return 0; else return matrix->nums[i*(i-1)/2+j-(matrix->scale-i)-1]; break; case rightUp: if(i>j) return 0; else return matrix->nums[matrix->size - (matrix->scale-i+1)*(matrix->scale-i+2)/2+j-i]; break; default: return -1; break; } } void OuptPut(TriangleMatrix* p) { for(int i=1;i<=p->scale;i++) { for(int j=1;j<=p->scale;j++) { printf("%d ",getElement(p,i,j)); } printf("\n"); } } void main() { printf("\n"); printf("%s","four kinds of triangle matrix, and the elements is:"); printf("\n"); int x=9; TriangleMatrix* p= createTriangleMatrix(x,leftBottom); for(int i=0;i<x*(x+1)/2;i++) { p->nums[i]=rand()%10; printf("%d ",p->nums[i]); } printf("\n"); printf("vertical corner at leftBottom:\n"); OuptPut(p); printf("vertical corner at rightBottom:\n"); p->triangleTye = rightBottom; OuptPut(p); printf("vertical corner at leftUp:\n"); p->triangleTye = leftUp; OuptPut(p); printf("vertical corner at rightUp:\n"); p->triangleTye = rightUp; OuptPut(p); printf("Done\n"); scanf("%d",&x); }
相关文章推荐
- 使用JavaScript的数组实现数据结构中的队列与堆栈
- python 数组 队列 堆栈
- 队列、堆栈与数组、链表的关系与区分
- java中的数组、队列、堆栈
- 用数组实现堆栈和队列
- 队列、堆栈与数组、链表的关系与区分
- 数组、链表、堆栈和队列
- java常用的几种数据结构,堆栈,队列,数组,链表,哈希表
- JavaScript的数组实现队列与堆栈的方法
- 巧用javascript数组实现数据结构-堆栈与队列
- 用数组实现js中的堆栈 或者队列数据结构
- 队列堆栈和数组-十字链表矩阵
- Java数组实现堆栈和队列
- 用数组实现堆栈和队列
- JavaScript的数组实现队列与堆栈的方法
- 使用JavaScript的数组实现数据结构中的队列与堆栈
- 队列、堆栈与数组、链表的关系与区分
- 把perl的hash结构放入数组/堆栈/队列的方法
- JavaScript学习总结(二十一)——使用JavaScript的数组实现数据结构中的队列与堆栈
- 数组队列和堆栈、shift、unshift、push、pop