| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 571 人关注过本帖
标题:数据结构中的错误,帮我改改
只看楼主 加入收藏
zoujiecheng
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2009-9-27
收藏
 问题点数:0 回复次数:1 
数据结构中的错误,帮我改改
#include "stdafx.h"
#include<stdlib.h>
typedef int ElemType;
/ pedef POINT ElemType;
/ pedef double ElemType;
/ pedef char ElemType;
#define ERROR 0
#define OK 1
typedef struct node
{
ElemType elem;
struct node*next;
}NODE;
typedef struct
{
    NODE*head;
}LINK_LIST;
int IntList(LINK_LIST*L)
{
    L->head=(NODE*)malloc(sizeof(NODE));
    if(L->head){L->head->next=NULL;return OK;}
        return ERROR;
}
void Destorylist(LINK_LIST*L)
{
    NODE*p;
    while(L->head)
    {
        p=L->head;
        L->head=L->head->next;
        free(p);
    };
}
void ClearList(LINK_LIST*L)
{
    NODE*p;
    while(L->head->next)
    {
        p=L->head->next;
        L->head->next=p->next;
        free(p);
    }
    int ListLength(LINK_LIST L)
    {
        NODE*p;
        int len;
        for(p=L.head,len=0;p->next!NULL;p->next,len++);
        return(len);
    }
    int IsEmpty(LINK_LIST L)
    {
        return(L->head->next==NULL);
    }
    bool GetElem(LINK_LIST L,int i,ElemType*e)
    {
        NODE*p;
        int j;
        if(i<1||i>ListLength(L))return ERROR;
for(p=L.head,j=0;j!=i;p->next,j++);
*e=p->elem;
return OK;
    }
    NODE*LocateElem(LINK_LIST L,ElemType e)
    {
        NODE*p;
        for(p=L.head->next;p&&p->elem!=e;p=p->next);
        return(p);
    }
    NODE*PriorElem(LINK_LIST 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(p->next==NULL)return NULL;
        if(p->next==e)return p;
        return NULL;
    }
    NODE*NextElem(LINK_LIST L,NODE*e)
    {
        NODE*p;
        for(p=L.head->next;p&&p!=e;p=p->next);
        if(p)p=p->next;
        return p;
    }
    int ListInsert(LINK_LIST*L,int i,ElemType e)
    {
        NODE*p,*s;
        int j;
            if(i<1||ListLengh(*L)+1) return ERROR;
            s->elem=e;
            for(p=L->head,j=0;p&&j<i-1;p=p->next,j++);
            s->next=p->next;
            p->next=s;
            return OK;
    }
    int ListDelete(LINK_LIST*L,int i,ElemType*e)
    {
        NODE*p,*s;
        int j;
        if(i<||i>ListLengh(*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 main(int argc, char* argv[])
{   
    //printf("Hello World!\n");
LINK_LIST L1,L2;
int i;
InitList(&L1);
InitList(&L2);
for(i=0;i<25;i++)
{
    ListInsert(&L1,i,i);
    ListInsert(&L2,i,25-i);
};
ElemType e,e1,e2;
i=10;
GetElem(L1,i,&e1);
if(!GetElem(L2,i,&e2))
printf("error in GetElem (L2)!\n");
else printf("e1=%de2=%d\n",e1,e2);
ListDelete(&L1,5,&e1)
ListInsert(&L2,7,e2)
printf("e1=%de2=%d\n",e1,e2);
DestroyList(&L1);
DestroyList(&L2);
    return 0;
}
搜索更多相关主题的帖子: 数据结构 改改 
2009-09-28 10:10
风影空
Rank: 1
等 级:新手上路
帖 子:73
专家分:2
注 册:2009-7-23
收藏
得分:0 
ElemType *elem;
int InitList...
  if(!L){
     printf("Malloc fail!\n");
     exit(0);     
  }
  (*L)->next=NULL;
好乱啊  我头大 下次有空再看看
2009-10-10 10:58
快速回复:数据结构中的错误,帮我改改
数据加载中...
 
   



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

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