请c++大师帮助!!!我这个程序总是编译不通过,请帮忙修改
程序如下总有一个错误请帮忙改一下#include<dos.h>#include<conio.h>#include<stdio.h>#include<stdlib.h>ty...
程序如下 总有一个错误 请帮忙改一下
#include <dos.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
typedef struct{
char data;
struct lnode *next;
}LNode,*linklist;
void Creatlist_L(linklist &L,int n)
{linklist p;
int i;
L=(linklist)malloc (sizeof(LNode));
L->next=NULL;
for(i =n ;i>0;--i){
p=(linklist)malloc (sizeof(LNode));
scanf("%c",&p.data);
p->next=L->next ;L->next=p;
}
}
bool ListEmpty(LinkList L)
{
if(L->next)
return false;
else
return true;
}
int ListLength(LinkList L)
{
int i=0;
LinkList p=L->next;
while(p)
{
i++;
p=p->next;
}
return i;
}
bool ListInsert(LinkList L,int i,char e)
{
int j=0;
LinkList p=L,s;
while(p&&j<i-1)
{
p=p->next;
j++;
}
if(!p||j>i-1)
return ERROR;
s=(LinkList)malloc(sizeof(struct LNode));
s->data=e;
s->next=p->next;
p->next=s;
return OK;
}
bool ListDelete(LinkList L,int i,char *e)
{
int j=0;
LinkList p=L,q;
while(p->next&&j<i-1)
{
p=p->next;
j++;
}
if(!p->next||j>i-1)
return ERROR;
q=p->next;
p->next=q->next;
*e=q->data;
free(q);
return OK;
}
int LocateElem(LinkList L,char e,Status(*compare)(char,char))
{
int i=0;
LinkList p=L->next;
while(p)
{
i++;
if(compare(p->data,e))
return i;
p=p->next;
}
return 0;
}
void main(){
int n ,i;
char ch ;
printf("请输入单链表的长度\n");
scanf(" %d",&n);
Creatlist_L(&L,n);
int flag=1;
while(flag)
{ printf("请选择:\n");
printf("1.求表的长度\n");
printf("2.判断表是否为空\n");
printf("3.查找一个元素\n");
printf("4.插入一个元素\n");
printf("5.删除一个元素\n");
printf("6.退出\n");
scanf(" %c",&j);
switch(j)
{case '1':printf(ListLength(L));break;
case '2':printf(ListEmpty(L)); break;
case '3':char ch;
printf("输入你要查找的元素");
scanf("%c",&ch)
LocateElem(L,char ch,Status(*compare)(char,char))
case '4':{printf("请输入要插入的元素(一个字符)和插入位置:\n");
printf("格式:字符,位置;例如:a,2\n");
scanf(" %c,%d",&ch,&i);
int temp;
temp=ListInsert( L, i,ch);
if(temp==False) printf("插入失败!\n");
else {printf("插入成功!\n"); print(S);}
break;
}
case '5':{printf("请输入要删除元素的位置:");
scanf("%i",&i;
temp=ListDelete(L, i,ch);
if(temp==True) printf("删除了一个元素:%c\n",ch);
else printf("该元素不存在!\n");
print(S);
break;
}
default:flag=0;printf("程序结束,按任意键退出!\n");
}
}
去掉头文件也不行啊 我监测到的错误是
我看不懂那个错误是什么 大虾 帮我看一下吧 展开
#include <dos.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
typedef struct{
char data;
struct lnode *next;
}LNode,*linklist;
void Creatlist_L(linklist &L,int n)
{linklist p;
int i;
L=(linklist)malloc (sizeof(LNode));
L->next=NULL;
for(i =n ;i>0;--i){
p=(linklist)malloc (sizeof(LNode));
scanf("%c",&p.data);
p->next=L->next ;L->next=p;
}
}
bool ListEmpty(LinkList L)
{
if(L->next)
return false;
else
return true;
}
int ListLength(LinkList L)
{
int i=0;
LinkList p=L->next;
while(p)
{
i++;
p=p->next;
}
return i;
}
bool ListInsert(LinkList L,int i,char e)
{
int j=0;
LinkList p=L,s;
while(p&&j<i-1)
{
p=p->next;
j++;
}
if(!p||j>i-1)
return ERROR;
s=(LinkList)malloc(sizeof(struct LNode));
s->data=e;
s->next=p->next;
p->next=s;
return OK;
}
bool ListDelete(LinkList L,int i,char *e)
{
int j=0;
LinkList p=L,q;
while(p->next&&j<i-1)
{
p=p->next;
j++;
}
if(!p->next||j>i-1)
return ERROR;
q=p->next;
p->next=q->next;
*e=q->data;
free(q);
return OK;
}
int LocateElem(LinkList L,char e,Status(*compare)(char,char))
{
int i=0;
LinkList p=L->next;
while(p)
{
i++;
if(compare(p->data,e))
return i;
p=p->next;
}
return 0;
}
void main(){
int n ,i;
char ch ;
printf("请输入单链表的长度\n");
scanf(" %d",&n);
Creatlist_L(&L,n);
int flag=1;
while(flag)
{ printf("请选择:\n");
printf("1.求表的长度\n");
printf("2.判断表是否为空\n");
printf("3.查找一个元素\n");
printf("4.插入一个元素\n");
printf("5.删除一个元素\n");
printf("6.退出\n");
scanf(" %c",&j);
switch(j)
{case '1':printf(ListLength(L));break;
case '2':printf(ListEmpty(L)); break;
case '3':char ch;
printf("输入你要查找的元素");
scanf("%c",&ch)
LocateElem(L,char ch,Status(*compare)(char,char))
case '4':{printf("请输入要插入的元素(一个字符)和插入位置:\n");
printf("格式:字符,位置;例如:a,2\n");
scanf(" %c,%d",&ch,&i);
int temp;
temp=ListInsert( L, i,ch);
if(temp==False) printf("插入失败!\n");
else {printf("插入成功!\n"); print(S);}
break;
}
case '5':{printf("请输入要删除元素的位置:");
scanf("%i",&i;
temp=ListDelete(L, i,ch);
if(temp==True) printf("删除了一个元素:%c\n",ch);
else printf("该元素不存在!\n");
print(S);
break;
}
default:flag=0;printf("程序结束,按任意键退出!\n");
}
}
去掉头文件也不行啊 我监测到的错误是
我看不懂那个错误是什么 大虾 帮我看一下吧 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询