数据结构 线性表 问题
发布网友
发布时间:2022-04-14 15:35
我来回答
共1个回答
热心网友
时间:2022-04-14 17:04
#include<stdio.h>
#include<stdlib.h>
typedef struct
{
int data[50];
int length;
}SqList;
void CreateList(SqList *&L,int b[],int n)/*建立线性表*/
{
int i;
L=(SqList *)malloc(sizeof(SqList));
for(i=0;i<n;i++)
L->data[i]=b[i];
L->length=n;
}
void DispList(SqList *L) /*输出线性表*/
{
int i;
for(i=0;i<L->length;i++)
{
printf("%d ",L->data[i]);
}
printf("\n");
}
void ListInsert(SqList *&L,int i,int c)/*插入数据元素*/
{
int j;
for (j=L->length;j>i;j--)
L->data[j]=L->data[j-1];
L->data[i]=c;
L->length++;
}
int LocateElem(SqList *L,int e)/*按元素值查找*/
{
int i=0;
while(i<L->length&&L->data[i]!=e)
{
i++;
}
if(i=L->length)
return L->length;
else
return i;
}
void main()
{
SqList *L;
int n,i,item,data,x;
int a[50];
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);//加个取地址符号
}
scanf("%d",&item);
scanf("%d",&data);
CreateList(L,a,n);
x= LocateElem(L,item);
ListInsert(L,x,data);
DispList(L);
}//唯一的问题就是输入数据时不小心丢了取地址符号!这样的问题可以把分类设置为c/c++这样才更多的人帮你回答!
你这样写的程序逻辑上是没问题但不是完美的,可以不用数组直接用指针更好。附件里面有个我写的,有兴趣的话就看看!有疑问的话就可以一起探讨!
追问还是不行啊 你运行下就知道了
追答
可能是你自己的编译器的问题吧?
下面的是运行结果,程序没有语法错误了,但有逻辑错误不能实现你想要的功能!这里只能是你自己参考别人的代码来修改吧!这样才能真正学会!