魔术师发牌问题

来源:互联网 发布:php 广告系统 编辑:程序博客网 时间:2024/05/11 09:47
  由于最近在学习链表,所以写了几个关于循环链表的问题。但由于刚刚开始学,代码写的并不是很好。但想记录一下。
#include<iostream>#include<stdlib.h>using namespace std;struct Node{    int data;    Node *Next;};int main(){//魔术师发牌问题    Node *pNode=(Node*)malloc(sizeof(Node));//生成一个线性链表    pNode->data=0;    pNode->Next=pNode;    Node *p=pNode;    for(int i=1;i<=12;i++){        Node *h=(Node*)malloc(sizeof(Node));        h->data=0;        h->Next=p->Next;        p->Next=h;        p=h;    }    Node *t=pNode;//循环解决问题    for(int j=1;j<=13;j++){        for(int x=1;;){            if(x==j&&t->data==0){                t->data=j;                break;            }            if(t->data==0){                x++;                t=t->Next;            }            else{                t=t->Next;            }        }    }    Node *y;//输出结果    for(y=pNode;y->Next!=pNode;y=y->Next){        cout<<y->data<<endl;    }    cout<<y->data<<endl;    return 0;}


1 0
原创粉丝点击