| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1619 人关注过本帖
标题:有一个问题,不知道是软件的问题,还是语法的问题,有些代码总是运行不出来
取消只看楼主 加入收藏
wyh416
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2020-10-9
结帖率:33.33%
收藏
已结贴  问题点数:20 回复次数:2 
有一个问题,不知道是软件的问题,还是语法的问题,有些代码总是运行不出来
#include<stdio.h>
#include<stdlib.h>
typedef int ElmeType;
typedef struct node{
    ElmeType data;
    struct node *next;
}SLinkNode;
//链表的初始化
void InitList(SLinkNode *&L)
{   
    L=(SLinkNode*)malloc(sizeof(SLinkNode));
    L->data=NULL;
}
//在第i个位置上插入数值为x的元素
int InsElem(SLinkNode *&L, ElmeType x,int i)
{    int j=0;
    SLinkNode *p=L,*s;
    if(i<=0)return 0;
    if(p!=NULL&&j<i-1)
    {   
        j++;
        p=p->next;   
    }
    if(p==NULL)return 0;
    else{
    s=(SLinkNode*)malloc(sizeof(SLinkNode));
    s->data=x;
    s->next=p->next;
    p->next=s;
    return 1;
    }
}
//链表的输出
    void DispList(SLinkNode *L)
    {   
        SLinkNode *p=L->next;
            while(p!=NULL)
            {   
                printf("%d\t",p->data);
                p=p->next;
            }
            printf("\n");
    }
//单链表的销毁
    void DestryList(SLinkNode *L)
    {
        SLinkNode *p,*pre=L;
        p=pre->next;
        while(p!=NULL)
        {
            free(pre);
            pre=p;
            p=p->next;
        }
    free(pre);
   
    }
    //求单链表的长度
    int GetLength(SLinkNode *L)
    {
        int j=0;   
        SLinkNode *p;
        p=L->next;
        while(p!=NULL)
        {
        j++;
        p=p->next;
        }
    return j;
    }
    //求第i个元素
    int GetElem(SLinkNode *L,int i, ElmeType &e)
    {
        SLinkNode *p=L;
        int j=0;
        if(i<=0)return 0;
        while(p!=NULL&&j<i)
        {
            j++;
            p=p->next;   
        }
        if(p==NULL)return 0;
        else
        {
            e=p->data;
            return 1;
        
        }
   
    }
//以上是头文件的代码
#include"SLinkNode.h"
void main()
{
    SLinkNode *L;
    InitList(L);
    int i;
    int cd;
    ElmeType e;
    InsElem(L, 0,1);
    InsElem(L, 10,2);
    InsElem(L, 20,3);
    InsElem(L, 30,4);
    InsElem(L, 40,5);
    InsElem(L, 50,6);
    InsElem(L, 60,7);
    InsElem(L, 70,8);
    InsElem(L, 80,9);
    InsElem(L, 90,10);
    printf("线性表:");DispList(L);
    cd=GetLength(L);
    printf("输出此单链表的长度:%d\n",cd);
    i=3;
    GetElem(L,3, e);
    printf("第3个数:%d",e);
    DestryList(L);

}
//这里是主文件
线性表:0       90      80      70      60      50      40      30      20      10      Press any key to continue
//这是运行结果
我是用VC6做的。但是不知道怎么回事这个输出结果只有最上面显示输出元素的,之后的输出不知道为什么一直不显示
搜索更多相关主题的帖子: return data next NULL int 
2021-09-25 16:17
wyh416
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2020-10-9
收藏
得分:0 
回复 4楼 rjsp
谢谢谢谢,感觉自己还差好多
2021-09-26 11:44
wyh416
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2020-10-9
收藏
得分:0 
回复 3楼 rjsp
我这边估计是代码写的有错误,刚才把那个初始化的改了,发现有些变好了
2021-09-26 11:45
快速回复:有一个问题,不知道是软件的问题,还是语法的问题,有些代码总是运行不 ...
数据加载中...
 
   



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

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