当前位置:编程问答 > C/C++ >

帮我改下数据结构的程序,我不知道怎么改谢谢

问题:#include <stdio.h> #include <stdlib.h> #include <malloc.h> typedef int Elemtype; //定义线性表数据元素类型 typedef struct Node { Elemtype data; //定义结点的数据域 struct Node *next; //定义结点的指针域 }LNode,*LinkList; //定义链表的数据结构 LinkList CreateLinkList() //创建单链表 { int i,length; LinkList L,S,p; //定义L为头指针,L是指向结构体类型的指针 L=(LNode *)malloc(sizeof(LNode)); //创建头结点 if(!L) { printf("\n头结点创建失败!\n"); exit(!0); } L->next=NULL; p=L; //创建其余结点,若线性表的长度为奇数,采用从后向前创建;若长度为偶数,采用从前向后创建 printf("\n请输入线性表的长度:"); scanf("%d",&length); if(length%2==0) { printf("\n线性表长度为偶数,采用从前向后生成结点!\n"); for(i=1;i<=length;i++) { S=(LNode *)malloc(sizeof(LNode)); //申请结点 printf("\n请输入第%d个元素的值:",i); scanf("%d",&S->data); S->next=p->next; //第一个结点的指针域为NULL p->next=S; //修改指针,让头结点的指针指向第一个结点 p=p->next; //指针发生移动,p指向新创建的结点 } } else { printf("\n线性表长度为奇数,采用从后向前生成结点!\n"); for(i=1;i<=length;i++) { S=(LNode *)malloc(sizeof(LNode)); //申请结点 printf("\n请输入第%d个元素的值:",5-i+1); scanf("%d",&S->data); S->next=p->next; //最后一个结点的指针域为NULL p->next=S; //修改指针,让头结点的指针指向最后结点 } } L->data=length; //用头结点的数据域存放链表长度 return L; //头指针决定单链表,所以返回头指针 } void PrintLinkList(LinkList L) //输出单链表 { LinkList p; p=L->next; //p指向首元(第一个)结点 while(p) { printf("%d",p->data); if(p->next!=NULL) printf("—>"); p=p->next; } } int getMaxNum(LinkList L) { LNode *p; int max; p=L->next; max=p->data; while(p) { if(max<=p->data) { max=p->data; } p=p->next; } return max; } LinkList setNumPosition(LinkList L,int num) { LNode *p,*q,*r; p=q=L->next; r=L; while(p) { if(p->data==num) { q=p; p=p->next; break; } q=p; r=r->next; p=p->next; } if(num%2==0) { q->next=p->next; p->next=q; r->next=p; } else if(num%2==1) { q->next=p->next; free(p); } return L; } void main() { LinkList L; int initLength=-1; int maxNum; printf("请输入单链表的长度:"); scanf("%d",&initLength); L=initLinkList(initLength); outputLinklist(L); maxNum=getMaxNum(L); printf("最大值结点是:%d\n",maxNum); L=setNumPosition(L,maxNum); printf("整理后输出链表:\n"); outputLinklist(L); }
追问:F:\2011-2012第三学期暑假实习实训通知及相关附件\10级\计算类\t2.cpp(130) : error C2065: 'initLinkList' : undeclared identifier
F:\2011-2012第三学期暑假实习实训通知及相关附件\10级\计算类\t2.cpp(130) : error C2440: '=' : cannot convert from 'int' to 'struct Node *'
        Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
其他:程序太长了,你能着重点,说说哪里出问题么? Mark 

上一个:C++随机生成一个强连通图!
下一个:文件指针可以赋值吗? 比如,首先声明一个FILE *p1,*p2,*p3; p2=p1;这条语句对吗?!!!

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,