标题:求助各位大神帮我修改程序。数据结构删除线性表中等于x的元素
取消只看楼主
龙岩花界
Rank: 2
等 级:论坛游民
帖 子:41
专家分:27
注 册:2018-10-18
结帖率:25%
 问题点数:0 回复次数:3 
求助各位大神帮我修改程序。数据结构删除线性表中等于x的元素
#include<iostream.h>
#include<stdlib.h>
#define MaxSize 100
typedef int ElemType;
typedef struct
{
     ElemType  data[MaxSize];
     int length;
}SqList;
void InitList(SqList *&L)
{   L=(SqList *)malloc(sizeof(SqList));
    L->length=0;
}
void GreateList(SqList *&L,int n,ElemType a[])
{
    int i=0,k=0;
    L=(SqList *)malloc(sizeof(SqList));
    while(i<n)
    {L->data=a[i];
     k++;i++;
    }
    L->length=k;
}
void delnodel(SqList *&L,ElemType x)
{
    int k=0,i;
    for(i=0;i<L->length;i++)
        if(L->data[i]!=x)
        {
            L->data[i]=L->data[k];
            k++;
        }
        L->length=k;
}
void DispList(SqList *L)
{
    for(int i=0;i<L->length;i++)
        cout<<L->data[i]<<endl;
}
void main()
{
     SqList *L;
     InitList(L);
     int i,n,x;
     int a=new int[];
     cin>>n;
     cout<<"请输入数组a[]中的元素"<<endl;
     for(i=1;i<n;i++)
     {
         cin>>a[i];
     }
     GreateList(L,a,n);
     cin>>x;
     delnodel(L,x);
     cout<<endl;
     DispList(L);
     cout<<endl;
}
已经错到我改不下去了,我的程序大致是初始化线性表,然后构建线性表,再删除x的程序,再就是输出线性表,主函数调用各个函数。我是在vc++6.0上做的,大神们复制下我的程序帮忙修改下,感激不尽!
搜索更多相关主题的帖子: 线性表 int data length void 
2018-10-30 21:29
龙岩花界
Rank: 2
等 级:论坛游民
帖 子:41
专家分:27
注 册:2018-10-18
得分:0 
//void GreateList(SqList *&L,int n,ElemType a[])
void GreateList(SqList **L,int n,ElemType a[])
//L->data=a[i];
(*L)->data[i]=a[i];
我的表示方法是我按照教科书上来的,为什么有问题
//GreateList(L,a,n);
    GreateList(&L,n,a);
    cin>>x;
    //delnodel(L,x);
    delnodel(&L,x);
然后大佬可以给我解释一下引用函数为什么是这样调用参数的吗?
cin>>n;
int *a=new int[n];
这样子的数组存放是怎样的一种解释?
2018-10-31 10:33
龙岩花界
Rank: 2
等 级:论坛游民
帖 子:41
专家分:27
注 册:2018-10-18
得分:0 
回复 4楼 吹水佬
我想这跟表达形式应该没有太大关系,因为之前我一直都是这样编译的,在我的编译器上运行的也是正常的。&L表达的似乎是一种输出型,调用的时候加&,应该表示的是这个线性表输出吧。然后我不懂得是为什么需要在L->data[i]的L前面加*;你改的我在我的编译器上运行是正确的。我就是想清楚的知道主函数调用函数,参数有的为什么加&,然后*改了之后,几个分函数为什么就没有问题了。大佬,求详解

[此贴子已经被作者于2018-10-31 13:50编辑过]

2018-10-31 13:35
龙岩花界
Rank: 2
等 级:论坛游民
帖 子:41
专家分:27
注 册:2018-10-18
得分:0 
回复 8楼 吹水佬
听了这些,还是有点感觉一头雾水,L,*L,**L的含义还是不清楚,再就是声明函数参数的表示,以及调用函数参数的表示。比如,主函数调用输入函数为什么用的&L,而输出直接用的L
2018-11-01 21:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-490833-1-1.html




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

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