|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
刚学数据结构与算法,在魔术师发牌问题遇到一个问题,编译没有错,但是运行程序时报错,请各位帮我看一下问题所在,不胜感激,
- #include <stdlib.h>
- #include <stdio.h>
- #define CardNumber 13
- typedef struct Node{
-
- int data;
- struct Node *next; // 这里少了分号;
- } sqlList,*LinkList;
- LinkList CreateList(){
-
- int i;
- LinkList head=NULL;
- LinkList p,q;
- p=head;
-
- for(i=1;i<=CardNumber;i++)
- {
- q=(LinkList)malloc(sizeof(sqlList));
- q->data=0;
- /*
- head=q;
- p->next=q;
- 这是要头插还是尾插?前一步头结点指向新结点,又让尾结点指向新结点
- */
- if ( !head ) // 头结点空就放头结点后面
- head = q;
- else // 不空就放尾结点后面
- p->next = q;
-
- p=q;
- }
-
- p->next=head;
-
- return head;
- }
- void Mangic(LinkList *head)
- {
- int Number=2;
- int i;
- LinkList p;
- p= *head; // head是二次指针,p是一次,解引用后再赋值
- p->data=1;
-
- while(1)
- {
- for(i=0;i<Number;i++)
- {
- p=p->next;
- if(p->data!=0)
- {
- //p->next;
- i--;
- }
- }
-
- if(p->data==0)
- {
- p->data=Number;
- Number++;
-
- if(Number==14)
- {
- break;
- }
- }
- }
- }
- int main(){
-
- int i;
- LinkList l;
- l=CreateList();
-
- Mangic(&l);
-
- for(i=0;i<CardNumber;i++)
- {
- printf("%d ", l->data);
- l=l->next;
- }
-
- return 0;
- }
复制代码
有问题点“回复”,没问题麻烦点一下“最佳答案”
|
|