| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 499 人关注过本帖
标题:[求助]一个链表的基本操作程序,有错误
只看楼主 加入收藏
hywok
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2006-11-15
收藏
 问题点数:0 回复次数:1 
[求助]一个链表的基本操作程序,有错误

/* HELLO.C -- Hello, world */

#include "stdio.h"
#include "conio.h"
typedef int DataType;

typedef struct LNode
{DataType data;
struct LNode *next;
}LNode,*LinkedList;


LinkedList LinkedListInit() /*初始化链表 */
{ L=(LNode*)malloc(sizeof(LNode));
if(L==null)
{printf("Not enough space!");
exit(0);
}
L->next=null;
return L;
}

Void LinkedListClear(LinkedList L) /*清空单链表 */
{P=L;int Q;
while(P->next)
{Q=P->next;
P->next=Q->next;
free(Q);
}

int LinkedListEmpty(LinkedList L) /*检查是否为空表*/ */
{if(L->next==null)
printf("empty!");
return 1;
else printf("Not empty!");
return 0;
}

void LinkedListTraverse(LinkedList L) /*遍历单链表*/
{P=L;
while(P->next)
{printf("%c",P);
P=P->next;
}
}

int LinkedListLength(LinkedList L) /*求长度 */
{ P=L->next;j=0;
while(P->next)
{j++;P=P->next;}
return j;
}

LinkedList LinkedListGet(LinkedList L,int i) /*按序查找 */
{P=L->next;j=1;
while(P!=null&&j<i)
{P=P->next;
j++;
}
if(j==i)
return P;
else return null;
}

LinkedList LinkedListLocate(LinkedList L,DataType x) /*按值查找 */
{ P=L->next;j=1;
if(P!=null&&P->data!=x)
{P=P->next;j++;
}
if(p->next==x)return j;
else return 0;
}

void LinkedListInsert(LinkedList L,int i,DataType x) /*在I之前插入元素X */
{pre=L;
while(pre!=null&&pre->next!=i)
pre=pre->next;
if(!pre){printf("The insert place is wrong!");exit(0);}
S=(LNode*)malloc(sizeof(LNode)) ;
S->data=x;
S->next=pre->next;
pre->next=S;
}

void LinkedListDel(LinkedList L,int i) /*删除第I个节点 */
{P=L;j=1;
while(P->next&&j>i)
{P=P->next;j++;}
if(P->next==null||j>i)
{printf("The point you want to delete is wrong!");
exit(0);
}
Q=P->next;P->next=Q->next;free(Q);
}

LinkedList LinkedListCreat()
{ scanf(&x);
while(x!=flag)
{P=(LNode*)malloc(sizeof(LNode));
P->data=x; r->next=P;r=P;
scanf(&x);
}
r->next=null;return L;
}


main()
{int n,i
printf("Please input alphabet,ended with "flag"!");
LinkedList LinkedListCreat();
scanf(&n);
switch(n)
{case 1:LinkedListClear(LinkedList L);
printf("The LinkedList has been cleared!");
case 2:LinkedListEmpty(LinkedList l);
case 3:LinkedListTravers(LinkedList L);
case 4:printf("Please input the point you want to search!");
scanf(&i);
LinkedListGet(LinkedList L,int i);
case 5:printf("Please input the alphabet you want to search!");
scanf(&i);
LinkedListLocate(LinkedList L;DataType x)
case 6:printf("Please input the alhpabet you want to delete!");
scanf(&x);
LinkedListDel(LinkedList L,int i);
}
}



里面有一些错误,但是自己找不出来,请教同学也不会,只好来看看有没有高手帮忙调试一下了。有哪位高手帮帮小弟调试通过呀,谢谢了

搜索更多相关主题的帖子: 链表 
2006-11-15 20:37
smartwind
Rank: 1
等 级:新手上路
威 望:1
帖 子:277
专家分:0
注 册:2006-11-13
收藏
得分:0 
错误太多……
1.把所有的null都改为大写NULL
2.检查你的if-else语句,有的没加 { }
3.变量P,Q等均为局部的,你要么在头部把他们定义为全局,要么在使用他们的函数中加上定义

你先把这些改好了再说吧



2006-11-16 19:46
快速回复:[求助]一个链表的基本操作程序,有错误
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018721 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved