| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 511 人关注过本帖
标题:[原创]链表错误
只看楼主 加入收藏
baifenghan
Rank: 8Rank: 8
等 级:贵宾
威 望:10
帖 子:258
专家分:952
注 册:2006-3-17
结帖率:33.33%
收藏
 问题点数:0 回复次数:4 
[原创]链表错误

enum Logic{ERROR, OK};
enum Sexy{boy, girl};

#define NULL 0

typedef struct{
float maths;
float polity;
float english;
float professionClass;
float total;
}Score;
typedef struct{
char name[15];
enum Sexy sexy;
int age;
long number;
char scool;
Score score;
}Student,Elem; /*Jiedian Neirong.*/
typedef struct node{
Student elem;
struct node *next;
}Node; /* Jiedian leixing.*/

typedef struct{
Node *head;
}LinkList; /*this is the instruction of the list.*/

LinkList *Link


void DestroyList(LinkList *l)
void ClearList(LinkList *l)
int CreatList(LinkList *l)
int GetElem(LiskList l,int i,Elem *e)
int IsEmpty(LiskList l)
int GetLenghth(LinkList l)
int ListDelete(LinkList *l,int i,Elem *e)
int ListInsert(LinkList *l,int i,Elem *e)
Node *LocateElem(LinkList l,Elem *e)
Node *NextElem(LinkList *l,Node *e)
Node *PriorElem(LinkList *l,Node *e)

void ClearList(LinkList *l)
{
Node *p;
while(l->head->next)
{p=l->head->next;
l->head->next=p->next;
free(p);
}
}

int CreatList(LinkList *l)
{
l->head=(LinkList*)malloc(sizeof(Node));
if(l->head)
{l->head->next=NULL;
return OK;
}
else return ERROR;
}


void DestroyList(LinkList *l)
{
Node *p;
while(l->head)
{p=l->head;
l->head=l->head->next;
free(p);
}
}


int GetElem(LiskList l,int i,Elem *e)
{
Node *p;
int j;
if(i<1||i>GetLenghth(l))exit ERROR;
for(p=l.head,j=0;j!=i;p=p->next,j++);
*e=p->elem;
}


int IsEmpty(LiskList l)
{
if(l.head->next==NULL)return OK;
else return ERROR;
}


int GetLenghth(LinkList l)
{
Node *p;
int len;
for(p=l.head,len=0;p->head==NULL;p=p->next,len++);
return(len);
}


int ListDelete(LinkList *l,int i,Elem *e)
{
Node *p,*s;
int j;
if(i<1||i>GetLenghth(l))return ERROR;
for(p=l->head,j=0;j<i-1;p=p->next,j++);
s=p->next;
*e=s->elem;
p->next=s->next;
free(s);
return OK;
}


int ListInsert(LinkList *l,int i,Elem *e)
{
Node *p,*s;
int j;
if(i<1||i>GetLenghth(l)+1)return ERROR;
for(p=l.head,j=0;p&&j<i-1;p=p->next,j++);
if(j!=i-1){printf("\nIt is wrong inserted space! ");return ERROR;}
s=(Node*)malloc(sizeof(Node));
if(s==NULL)return ERROR;
s->elem=e;
s->next=p->next;p->next=s;
return OK;
}


Node *LocateElem(LinkList l,Elem *e)
{
Node *p;
for(p=l.head->next;p&&p->elem!=e;p=p->next);
return(p);
}


Node *NextElem(LinkList *l,Node *e)
{
Node *p;
for(p=l.head;p&&p!=e;p=p->next);
if(p)p=p->next;
return p;
}


Node *PriorElem(LinkList *l,Node *e)
{
Node *p;
if(l.head->next==e) return NULL;
for(p=l.head;p->next&&p->next!=e;p=p->next);
if(l->next==e)return p;
else return NULL;
}


main()
{
printf("%d\n", NULL);
}
上面的程序到底错什么了?很郁闷!
还有谁可以告诉我怎么解决多个源文件怎么一起运行!
以及书写头文件的技巧!

搜索更多相关主题的帖子: 链表 
2006-04-24 21:54
baifenghan
Rank: 8Rank: 8
等 级:贵宾
威 望:10
帖 子:258
专家分:952
注 册:2006-3-17
收藏
得分:0 
[原创求救
主要是子程序编译,主程序无关。
2006-04-24 21:56
gaga
Rank: 1
等 级:新手上路
威 望:2
帖 子:307
专家分:0
注 册:2006-4-5
收藏
得分:0 

我没有看你的程序,不过看见了这个 printf("%d\n", NULL);这是干什么啊
还有NULL是系统可以识别的


明天的明天还有明天。 可是今天却只有一个。 public Copy from 无缘今生
2006-04-24 22:01
ninanwine
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2006-5-1
收藏
得分:0 

链表就是墨迹。有时候明明一样的代码,上边的能执行,下边就不能执行了!


用0-1统治世界!
2006-05-02 04:46
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 

//楼主呵,基本功有点问题呀。以下每行末尾都得打上分号

LinkList *Link

void DestroyList(LinkList *l)
void ClearList(LinkList *l)
int CreatList(LinkList *l)
int GetElem(LiskList l,int i,Elem *e)
int IsEmpty(LiskList l)
int GetLenghth(LinkList l)
int ListDelete(LinkList *l,int i,Elem *e)
int ListInsert(LinkList *l,int i,Elem *e)
Node *LocateElem(LinkList l,Elem *e)
Node *NextElem(LinkList *l,Node *e)
Node *PriorElem(LinkList *l,Node *e)

//过不了编译、连接,就不必发来“扰民”了吧。


落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-05-02 05:00
快速回复:[原创]链表错误
数据加载中...
 
   



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

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