帮我改下数据结构的程序,我不知道怎么改谢谢
#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