c语言&数据结构&线性表

哪位大神看看下面的代码哪里出错了,我实在是找不出来了#include<stdio.h>#include<stdlib.h>#defineMAXSIZE100typedef... 哪位大神看看下面的代码哪里出错了,我实在是找不出来了
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 100
typedef struct
{
int date[MAXSIZE];
int length;
}Seqlist;
typedef SeqList *PSeqList;

PSeqList Init_SeqList(void )
{ /*创建一顺序表,入口参数无,返回一个指向顺序表的指针,指针值为零表示分配空间失败*/
PSeqList SeqListPoint;
SeqListPoint =( PSeqList )malloc(sizeof(SeqList));
if(SeqListPoint == NULL) /*若SeqListPoint=NULL表示分配失败*/
return NULL;
else
SeqListPoint -> length =0;
return (SeqListPoint);
}
void Destroy_SeqList(PSeqList SeqListPoint)

{
if (SeqListPoint)
free (SeqListPoint) ;
//SeqListPoint=NULL;
return ;
 }
int Location_SeqList (PSeqList SeqListPoint, int x)
{ /*顺序表检索,入口参数:为顺序表指针,检索元素,
返回元素位置,-1表示表不存在,0表示查找失败*/
int i=0;
if (!SeqListPoint)
{
printf("表不存在");
return(-1); /*表不存在,不能检索*/
}
while (i< SeqListPoint->length && SeqListPoint->data[i]!= x)
i++;
if (i>=SeqListPoint-> length) return 0;
else
return (i + 1);
}

int Delete_SeqList(PSeqList SeqListPoint,int i)
{ /*顺序表删除,入口参数:顺序表指针,删除元素位置,返回标志1表示成功,0表示删除位置不合法,-1表示表不存在*/
int j;
if (!SeqListPoint)
{
printf("表不存在");
return(-1); /*表不存在,不能删除元素*/
}
if(i<1 || i> SeqListPoint -> length) /*检查删除位置的合法性*/
{
printf ("删除位置不合法");
return(0);
}
for(j=i;j< SeqListPoint -> length;j++)
SeqListPoint ->data[j-1]= SeqListPoint ->data[j]; /*向上移动*/
SeqListPoint -> length --;
return (1); /*删除成功*/
}
int Length_SeqList (PSeqList SeqListPoint)
{ /*求顺序表的长度,入口参数:为顺序表指针,返回表长,-1表示表不存在*/
if (SeqListPoint)
return (SeqListPoint-> length) ;
return (-1);
}

int main()
{

PSeqList SeqListPoint;
SeqListPoint =Init_SeqList( );
int i=0,n,m;
while(i<MAXSIZE)
{
Seqlistpoint->date[i]=i+1;
i++;
}
printf("请输入要删除的元素:")
scanf("%d",&n);
printf("删除前的元素为:");
n=Length_SeqList (SeqListPoint);
for(i=0;i<n;i++)
printf("%d",SeqlistPoint->date[i]);
printf("\n");
m=Location_SeqList (SeqListPoint,n);
Delete_SeqList(SeqListPoint,m);
printf("\n");
printf("删除后的元素为:");
for(i=0;i<n;i++)
printf("%d",SeqlistPoint->date[i]);
printf("\n");
Destroy_SeqList(SeqListPoint) ;
}
这是编译出错是的提示。
展开
 我来答
kaixingui2012
推荐于2016-08-09 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6582万
展开全部
编译通过了,全是低级错误,逻辑问题没有检查,自己再看看吧
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 100
typedef struct
{
int data[MAXSIZE];//-<-------
int length;
}SeqList;//<------------

typedef SeqList * PSeqList;

PSeqList Init_SeqList(void )
{  /*创建一顺序表,入口参数无,返回一个指向顺序表的指针,指针值为零表示分配空间失败*/
PSeqList  SeqListPoint;
SeqListPoint =( PSeqList )malloc(sizeof(SeqList)); 
if(SeqListPoint == NULL)     /*若SeqListPoint=NULL表示分配失败*/
return  NULL;
else
SeqListPoint -> length =0;     
return (SeqListPoint);
}
void Destroy_SeqList(PSeqList SeqListPoint) 

{
    if (SeqListPoint)
free (SeqListPoint) ;
//SeqListPoint=NULL; 
return ;  
} //-<---------
int Location_SeqList (PSeqList SeqListPoint, int x)
{  /*顺序表检索,入口参数:为顺序表指针,检索元素,
返回元素位置,-1表示表不存在,0表示查找失败*/
int i=0;
if (!SeqListPoint) 

printf("表不存在"); //-<----------
return(-1); /*表不存在,不能检索*/

while (i< SeqListPoint->length && SeqListPoint->data[i]!= x)
i++;
if (i>=SeqListPoint-> length)  return 0;
else
return (i + 1);  


int Delete_SeqList(PSeqList SeqListPoint, int i) //-<-------
{  /*顺序表删除,入口参数:顺序表指针,删除元素位置,返回标志1表示成功,0表示删除位置不合法,-1表示表不存在*/
int  j;
if (!SeqListPoint)

printf("表不存在");//-<---------- 
return(-1); /*表不存在,不能删除元素*/

if(i<1 || i> SeqListPoint -> length)  /*检查删除位置的合法性*/
{  
printf ("删除位置不合法");//-<---------- 
return(0);

for(j=i;j< SeqListPoint -> length;j++)
SeqListPoint ->data[j-1]= SeqListPoint ->data[j]; /*向上移动*/
SeqListPoint -> length --;    
return (1);        /*删除成功*/

int Length_SeqList (PSeqList SeqListPoint)
{  /*求顺序表的长度,入口参数:为顺序表指针,返回表长,-1表示表不存在*/
if (SeqListPoint)
        return (SeqListPoint-> length) ;
return (-1);
}         


int main()
{
    PSeqList  SeqListPoint;
    SeqListPoint =Init_SeqList( );
int i=0,n,m;
while(i<MAXSIZE)
{
SeqListPoint->data[i]=i+1; //-<------
i++;
}
printf("请输入要删除的元素:");//-<--------
scanf("%d",&n);
printf("删除前的元素为:");
    n=Length_SeqList (SeqListPoint);
for(i=0;i<n;i++)
printf("%d",SeqListPoint->data[i]); //-<-----
printf("\n");
m=Location_SeqList (SeqListPoint,n);
Delete_SeqList(SeqListPoint,m);
printf("\n");
printf("删除后的元素为:");
for(i=0;i<n;i++)
printf("%d",SeqListPoint->data[i]);//-<-----
printf("\n");
    Destroy_SeqList(SeqListPoint) ;
return 0;//
}
桥彤暴耀
2019-03-14 · TA获得超过3851个赞
知道大有可为答主
回答量:3173
采纳率:29%
帮助的人:191万
展开全部
第3题中带头结点单链表L的第i个结点前插入值为x的结点。插入成功,则输出插入后链表中的所有元素;若插入失败,则给出提示。
实验测试数据基本要求:i分别为0,1,n,n+1,n+2;x=100
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式