首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

链表的逆序建立、查找、插入、删除合并而成的程序,大家来看看,一起帮忙找出异常

2012-03-25 
链表的逆序建立、查找、插入、删除合并而成的程序,大家来看看,一起帮忙找出错误#includestdio.h#includema

链表的逆序建立、查找、插入、删除合并而成的程序,大家来看看,一起帮忙找出错误
#include<stdio.h>
#include<malloc.h>
#define Element char

typedef struct Node
{
 Element data;
 struct Node *next;
}Node,*LinkList;

LinkList GetFromHead(LinkList L)
{
 L->next=NULL;
 Node *s;
 char c;
 int flag;
 flag=1;
 while(flag)
 { 
c=getchar();
 if(c!='$')
 {
 s=(Node*)malloc(sizeof(Node));
 s->data=c;
 s->next=L->next;
 L->next=s;
 }
 else flag=0;
}

 return L;
}
LinkList search(LinkList L)
{
LinkList p;
  int i,k;
printf("请输入你要查找元素的位置:");
scanf("%d",i);
if(i<=0) return Null;
p=L;k=0;
while(p->next!=Null&&k<i)
{
p=p->next;
k++;
}
if(k==i) return p;
else return Null;
}
void insert(LinkList L,Element e)
{
LinkList p,s;
int i,k;
printf("请输入哟插入元素的位置:");
scanf("%d",i);
if(i<=0) return Null;
p=L;k=0;
while(p!=Null&&k<i-1)
{
p=p->next;
k++;
}
if(p=Null)
{
printf("插入的位置不合理!");
return ERROR;
}
s=(LinkList)malloc(sizeof());
s->data=e;
s->next=p->next;
p->next=s;
return Ok;
}
int delete(LinkList L,LinkList e)
{
LinkList L;
int i,k;
  printf("请输入要删除的位置:");
scanf("%d",i);
p=L;k=0;
while(p->next!=Null&&k<i-1)
{
p=p->next;
k++;
}
if(p->next=Null)
{
printf("删除节点的位置不合理!");
return ERROR;
}
p->next=(p->next)->next;
*e=(p->next)->data;
free(p->next);
return OK;
}
void printf(LinkList L)
{
LinkList p;
p=L->next;
while(p!=Null)
{
print("%d",p->data);
p=p->next;
}
printf("\n");
}
void main()
{
  LinkList H,A;
  int j;
  A=(LinkList)mlloc(sizeof(Node));
  printf("************1、建立***********");
  printf("************2、查找***********");
  printf("************3、插入***********");
  printf("************4、删除***********");
  printf("请输入您要循着操作的序号:%d",j);
  switch(j)
  {
  case 1:H=GetFromHead(A);break;
case 2:H=GetFromHead(A);search(H);break;
case 3:H=GetFromHead(A);insert(H);break;
case 4:H=GetFromHead(A);delete(H);break;
  }
  printf(H);
}

[解决办法]
编程风格不好,第一个错误是逗号,第二个是NULL。其他不说了
[解决办法]
分号也有错误,拼音打字的分号;和字母时的分号;是有区别的。在程序里面只能用拼音打字的分号。在你打完汉字后记得调用输入法在输入分号。还有Null,这个是错误的。应该都是大写的NULL。
[解决办法]
你自己写的函数,如果函数名显示蓝色就说明这是个关键字,不能做函数名或者变量。
还有一些函数printf,库里面本来就有,所以你要写个同样的函数就要重换个名字。
OK是什么你定义了么?没定义就拿来用?
……

热点排行