#includeusing namespace std; typedef struct node { int data; struct node* next; }seqList,*linkList; linkList CreatlinkList(int x) { linkList head = NULL; linkList s, r; int i; r = head; for (i = 0; i < x; i++) { s = (linkList)malloc(sizeof(seqList)); s->data =0; if (head == NULL) { head = s; } else { r->next = s; } r = s; } r->next = head; return head; } //链表赋值 void Setdata(linkList head,int n) { linkList p; p = head; int j = 0; for (; j < n; ) { p->data = j + 1; p = p->next; j++; } } //打印输出结果 void outALLprint(linkList head, int n) { linkList q; q = head; for (int i = 0; i < n; i++) { linkList p; p =q; for (int i = 0; i < n; i++) { linkList s; s = p; for (int j = 0; j < n; j++) { cout << s->data << " "; s = s->next; } p = p->next; cout << endl; } cout << "-----------------------" << endl; q = q->next; } } //第一次输出打印 //void outprint(linkList head,int n) //{ // linkList p; // p = head; // for (int i = 0; i < n; i++) // { // linkList s; // s = p; // for (int j = 0; j < n; j++) // { // cout << s->data<<" "; // s = s->next; // // } // p = p->next; // cout << endl; // } //} int main() { linkList p; int n; cout << "请输入拉丁方阵的阶数:" << endl; cin >> n; p = CreatlinkList(n); Setdata(p, n); cout << "全部拉丁方阵为:" << endl; outALLprint(p, n); return 0; }



