数据结构(C语言)大佬们这个错误怎么改?

 

 

 

 

#include<malloc.h>
#include<stdio.h>
#include<stdlib.h>
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR -1
#define MAXNUM 100
typedef int DataType;
typedef struct
{
	DataType data[MAXNUM];
	int last;
}SeqList;
void SeqLSetNull(SeqList*1)
{
	1->last=-1;
}
int SeqLLength(SeqList*1)
{
	return 1->last+1;
}
DataType SeqLGet(Seqlist*1,int i)
{
	if(i<1||1->last+1)
	{
		printf("\t i的位置不正确\n");
		return ERROR;
	}
	return 1->data[i-1];
}
int SeqLLocate(SeqList*1,DataType x)
{
	int i;
	for(i=0;i<=1->last;i++)
		if(1->data[i]==x) return(i+1);
		return 0;
}
int SeqLInsert(SeqList*1,int i,DataType x)
{
	int j;
	if(1->last>=MAXNUM-1)
	{
		printf("\t溢出\n");
		return ERROR;
	}
	if(i<1||i>1->last+2)
	{
		printf("\t插入的位置不正确\n");
		return ERROR;
	}
	else
	{
		for(j=1->last;j>=i-1;j--)
			1->data[j+1]=1->data[j];
		1->dataa[i-1]=x;
		1-last++;
	}
	return OK;
}
int SeqLDelete(SeqList*1,int i)
{
	int j;
	if(i<1||i>1->last+1)
	{
		printf("\t删除的位置不正确\n");
		return ERROR;
	}
	else
	{
		for(j=i;j<=1->last;j++)
			1->data[j-1]=1->data[j];
		1->last--;
	}
	return OK;
}
void SeqLCreate(SeqList*1)
{
	int i,n;
	printf("\t请输入表的长度:");
	scanf("%d",&n);
	1-last=n-1;
	printf("\t依次输入表中的数据元素:\n");
	for(i=0;i<n;i++)
	{
		printf("\t第%d个元素是:",i+1);
		scanf("%d",&1->data[i]);
	}
}
void SeqLPrint(SeqList*1)
{
	int j;
	if(1->last<0)
	{
		printf("\t表空!\n");
		exit(0);
	}
	else
	{
		printf("\n表的数据元素如下:\n(");
		for(j=0;j<=1->last;j++)
			printf("%5d,"1->data[j]);
		printf("\b)\n");
	}
}
#include<seqlist.h>
#include<seqlist.c>
int main(int argc,char*argv[])
{
	DataType y;
	SeqList*a,x;
	int m,t,read=0;
	a=&x;
	do
	{
		puts("            关于顺序表的操作\n");
		puts("            ==================================\n");
		puts("            1-----置空表");
		puts("            2-----建表");
		puts("            3-----求表长");
		puts("            4-----取节点");
		puts("            5-----定位");
		puts("            6-----插入");
		puts("            7-----删除");
		puts("            8-----输出");
		puts("            0-----退出"):
		printf("          请输入代号(0——8):");
		scanf("%d",&read);
		printf("\n");
		switch(read)
		{
		case 1:SeqLSetNull(a);break;
		case 2:SeqLCreate(a);break;
		case 3:printf("\t表的长度是:%d\n",SeqLLength(a));break;
		case 4:printf("\t取节点的位置是:");
		     scanf("%d",&m);
			 y=SeqLGet(a,m);
			 if(y)
				 printf("\t第%d个节点是%d\n",m,y);break;
	    case 5:printf("\t定位的数据元素是:");
			 scanf("%d",&y);
			 t=SeqLLocate(a,y);
			 if(t)
				 printf("\t定位数据元素的位置是:%d\n",t);break;
		case 6:printf("\t插入数据元素是:"):
			scanf("%d",&y);
			printf("\t查人的位置是:");
			scanf("%d",&m);
			t=SeqLPrint(a);break;
		case 7:printf("\t删除的位置是:");
			scanf("%d",&m);
			t=SeqLDelete(a,m);
			if(t)
				printf("\t删除后表的数据元素是:\n");
			SeqLPrint(a);break;
		case 8:SeqLPrint(a);break;
		case 0:read=0;
		}
	}while(read!=0);
	return 0;
}
查看全部
qq_47407277
还有一份情等我去还
2020/11/26 17:11
  • c语言
  • 点赞
  • 收藏
  • 已关闭
    私信
满意答案
查看全部

2个回复