| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 360 人关注过本帖
标题:单链表出错了。求高手指点。
只看楼主 加入收藏
陈ren
Rank: 2
等 级:论坛游民
帖 子:42
专家分:33
注 册:2012-2-29
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
单链表出错了。求高手指点。
#include <iostream>
using namespace std;
#define OVERFLOW 0
#define FALSE 0
#define TRUE 1
#define ERROR 0
#define OK 1
typedef int Status;
typedef int ElemType;
typedef struct LNode
{
    ElemType  data ;
    struct LNode *next;
}LNode, *Linklist;

void Create_Linklist(Linklist &L)
{
    Linklist p;
    p=(Linklist)malloc(sizeof(LNode));
    if (!p)
        exit (OVERFLOW);
    L=p;
    L->next=NULL;
}

void Insret_Linklist(Linklist &L)
{
    Linklist p;
    int n,i;
    printf ("请输入插入节点的个数n:");
    scanf ("%d",&n);
    for (i=n;i>0;i--)
    {
        p=(Linklist)malloc(sizeof(LNode));
        if (!p)
            exit (OVERFLOW);
        cin>>p->data;
        p->next=L->next;
        L->next=p;
    }
}

Status Visit_Linklist(Linklist &L)
{
    Linklist p;
    int i=1;
    p=L->next;
    if (L->next==NULL)
    {
        return ERROR;
    }
    while (p->next!=NULL)
    {
        cout<<p->data;
        p=p->next;
        i++;
    }
    cout<<p->data<<endl<<"长度为:"<<i<<endl;
    return OK;
}

Status Delete_Linklist(Linklist &L)
{
    Linklist p,q;
    int k=0;
    int i;
    cout<<"请输入删除节点的值为:"<<endl;
    cin>>i;
    if (L->next==NULL)
        return ERROR;
    p=L;
    q=L->next;
    while (q!=NULL)
    {
        if (q->data==i)
        {
            k=1;p=q;
            p->next=q->next;
            free(q);
            q=p->next;
        }
    }
    if (k==0)
    {
        cout <<"表中没有"<<i<<"的节点"<<endl;
    }
    return OK;
}

Status Clera_Linklist(Linklist &L)
{
    Linklist p=NULL;
    L->next=p;
    return OK;
}

void main ()
{
    Linklist L;
    Create_Linklist(Linklist &L);
    Insret_Linklist(Linklist &L);
    Visit_Linklist(Linklist &L);
    Delete_Linklist(Linklist &L);
    Clera_Linklist(Linklist &L);
}

求高手指点指点哦。怎么出错了。
搜索更多相关主题的帖子: next void include 
2012-04-14 22:14
a646404908
Rank: 6Rank: 6
等 级:侠之大者
威 望:5
帖 子:189
专家分:492
注 册:2012-2-14
收藏
得分:13 
void main ()
{
    Linklist L;
    Create_Linklist(Linklist &L);
    Insret_Linklist(Linklist &L);
    Visit_Linklist(Linklist &L);
    Delete_Linklist(Linklist );
    Clera_Linklist( &L);
}
可以这样调用吗?
Linklist &L
2012-04-14 23:11
love24114
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:223
专家分:399
注 册:2011-7-11
收藏
得分:7 
楼上,那是引用类型,不过既然用C++去编
为什么不适用stl呢?
2012-04-14 23:12
陈ren
Rank: 2
等 级:论坛游民
帖 子:42
专家分:33
注 册:2012-2-29
收藏
得分:0 
回复 2楼 a646404908
谢谢拉。直接L就行了。。

老师说:死记硬背是一种很靠智商的方法,重要的还是努力
2012-04-15 12:59
陈ren
Rank: 2
等 级:论坛游民
帖 子:42
专家分:33
注 册:2012-2-29
收藏
得分:0 
回复 3楼 love24114
什么意思呢。

老师说:死记硬背是一种很靠智商的方法,重要的还是努力
2012-04-15 12:59
快速回复:单链表出错了。求高手指点。
数据加载中...
 
   



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

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