| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2403 人关注过本帖
标题:哪位大神能帮忙看看,为什么我的顺序表不能遍历?
只看楼主 加入收藏
凌灬轻扬
Rank: 1
等 级:新手上路
威 望:1
帖 子:28
专家分:0
注 册:2016-10-8
结帖率:80%
收藏
已结贴  问题点数:20 回复次数:4 
哪位大神能帮忙看看,为什么我的顺序表不能遍历?
//顺序表的实现
#include <stdio.h>
#include <stdlib.h>
#define size_list 100
#define TRUE 0
#define FALSE -1
typedef struct list
{
    int *plist;
    int listsize;
    int listlength;
}list;
list initlist(int n)
{
    list l;
    int i;
    l.plist = (int *)malloc(size_list*sizeof(int));
    l.listlength = 0;
    l.listsize = size_list; //初始储存容量
    printf("please input %d value:",n);
    for(i=1;i<=n;i++)
    {
        scanf("%d",&(l.plist[i-1]));
    //    printf("%d\n",(l.plist[i-1]));
    }
    return l;
}
void destroylist(list l)
{
//    list l;
    free(l.plist);     //
}
list clearlist()
{
    list l;
    l.listlength = 0;
    return l;
}
int listempty(list l)
{
    if(l.listlength ==0)
        return TRUE;
    else
        return FALSE;
}
int listfull(list l)
{
//    list l;
    if(l.listlength ==l.listsize)
        return TRUE;
    else
        return FALSE;
}
list insertlist(int i,int e)
{
    list l;
    int j;
    if(i<=0||i>l.listlength)
        exit(0);
    else
    {
        for(j=l.listlength;j>=i;j--)
            l.plist[j] = l.plist[j-1];
        e = l.plist[i-1];
    }
    l.listlength++;
    return l;
}
list deletelist(int i,int e)
{
    list l;
    int j;
    if(i<=0||i>l.listlength)
        exit(0);
    else
    {
        e = l.plist[i-1];
        for(j=i;j<l.listlength;j++)
            l.plist[j-1] = l.plist[j];
        l.listlength--;
    }
    return l;
}
void traverselist(list l)
{
    int i;
    for(i=1;i<l.listlength;i++)
    {
        printf("%d",(l.plist[i-1]));
    }
    return l;
    //    printf("%d",visit(l.plist[i-1]));
}
int main()
{
    list l;
    int a;
    l = initlist(3);
    traverselist(l);
    scanf("%d",&a);
    return 0;
}
搜索更多相关主题的帖子: include please 
2016-10-25 22:12
word123
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:13
帖 子:333
专家分:1622
注 册:2014-4-5
收藏
得分:20 
#include <stdio.h>
#include <stdlib.h>
#define size_list 100
#define TRUE 0
#define FALSE -1
typedef struct list
{
    int *plist;
    int listsize;
    int listlength;
}list;
list initlist(int n)
{
    list l;
    int i;
    l.plist = (int *)malloc(size_list*sizeof(int));
    l.listlength = 0;
    l.listsize = size_list; //初始储存容量
    printf("please input %d value:",n);
    for(i=1;i<=n;i++)
    {
        scanf("%d",&(l.plist[i-1]));
        l.listlength++;             //---------------------------------计数
    //    printf("%d\n",(l.plist[i-1]));
    }
    return l;
}
void destroylist(list l)
{
//    list l;
    free(l.plist);     //
}
list clearlist()
{
    list l;
    l.listlength = 0;
    return l;
}
int listempty(list l)
{
    if(l.listlength ==0)
        return TRUE;
    else
        return FALSE;
}
int listfull(list l)
{
//    list l;
    if(l.listlength ==l.listsize)
        return TRUE;
    else
        return FALSE;
}
list insertlist(int i,int e)
{
    list l;
    int j;
    if(i<=0||i>l.listlength)
        exit(0);
    else
    {
        for(j=l.listlength;j>=i;j--)
            l.plist[j] = l.plist[j-1];
        e = l.plist[i-1];
    }
    l.listlength++;
    return l;
}
list deletelist(int i,int e)
{
    list l;
    int j;
    if(i<=0||i>l.listlength)
        exit(0);
    else
    {
        e = l.plist[i-1];
        for(j=i;j<l.listlength;j++)
            l.plist[j-1] = l.plist[j];
        l.listlength--;
    }
    return l;
}
void traverselist(list l)
{
    int i;
    for(i=1;i<=l.listlength;i++)     //------------------------------------个数
    {
        printf("%d",(l.plist[i-1]));
    }
   // return l;
    //    printf("%d",visit(l.plist[i-1]));
}
int main()
{
    list l;
    int a;
    l = initlist(3);
    traverselist(l);
    scanf("%d",&a);
    return 0;
}

//其它函数可能还有点问题,自己看一下
2016-10-25 22:34
word123
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:13
帖 子:333
专家分:1622
注 册:2014-4-5
收藏
得分:0 
list insertlist(int i,int e)
{
    list l;
    int j;
    if(i<=0||i>l.listlength)
        exit(0);
    else
    {
        for(j=l.listlength;j>=i;j--)
            l.plist[j] = l.plist[j-1];
        e = l.plist[i-1];      //你是要把数插入进去,而不是取出来
    }
    l.listlength++;
    return l;
}
2016-10-25 22:35
word123
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:13
帖 子:333
专家分:1622
注 册:2014-4-5
收藏
得分:0 
list deletelist(int i,int e)
{
  //这个l需要你通过参数传递过来,上面的插入函数也是一样,  ---你其它函数都知道传参数list l,这个你不知道?????
    list l;//自己定义一个??????
    int j;
    if(i<=0||i>l.listlength)//l.listlength这是什么东西,你要清楚这个l不是你main函数里的l。
        exit(0);
    else
    {
        e = l.plist[i-1];
        for(j=i;j<l.listlength;j++)
            l.plist[j-1] = l.plist[j];
        l.listlength--;
    }
    return l;
}
2016-10-25 22:38
凌灬轻扬
Rank: 1
等 级:新手上路
威 望:1
帖 子:28
专家分:0
注 册:2016-10-8
收藏
得分:0 
回复 2楼 word123
好的,谢谢了!
2016-10-26 14:18
快速回复:哪位大神能帮忙看看,为什么我的顺序表不能遍历?
数据加载中...
 
   



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

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