C语言数据结构顺序表代码,求高手纠错_(:з」∠)_

代码在此:
http://hi.baidu.com/zhainanb/item/34c2d0ede61fe3256dabb8da

编译啥的都没事,每次运行都会出错 = =

第1个回答  2013-06-09
#include <stdio.h>
#include <stdlib.h>
#include <string>

#define MAXSIZE 100 //线性表最大容量
typedef int ElemType; //定义元素类型为int型

typedef struct //顺序存储结构的线性表的类型定义
{
ElemType data[MAXSIZE];
int last;
}List;

void ListInit(List &L) //初始化线性表
{
L.last=0;
}

void ListBuilt(List &L,int n) //创建含n个元素的线性表
{
int i;
for(i=1;i<=n;i++)
{
printf("Hde\n");
scanf("%d",&L.data[i]);
}
L.last=n;
}

void ListClear(List &L) //清空线性表
{
L.last=0;
}

int ListLength(List &L) //求表长
{
return(L.last);
}

int ListEmpty(List &L) //判空
{
return(L.last==0? 1:0);
}

void ListTraverse(List L) //遍历线性表
{
int i;
if(ListEmpty(L))
{
printf("空表\n");
}
else
{
for(i=1;i<=ListLength(L);i++)
{
printf("%d\n",L.data[i]);
}
}
}

ElemType ListGet(List L,int i) //从线性表中查找元素
{
return L.data[i];
}

int ListLocate(List L,ElemType x) //输入一个值,从线性表中查找与给定元素值相同的元素在线性表中的位置
{
int i=1;
while(i<=L.last && L.data[i]!=x)
{
i++;
}
if(i<=L.last)
return i;
else
return 0;
}

void ListInsert(List &L,int i,ElemType x) //插入元素
{
int j;
if(L.last==MAXSIZE)
{
printf("表满\n");
return;
}
if(i<1 || i>L.last)
{
printf("插入位置错误\n");
return;
}
for(j=L.last;j>=i;j--)
{
L.data[j+1]=L.data[j];
}
L.data[i]=x;
L.last++;
}

void ListDelete(List &L,int i) //删除元素
{
int j;
if(i<1||i>L.last)
{
printf("位置非法\n");
return;
}
for(j=i;j<=L.last-1;j++)
{
L.data[j]=L.data[j+1];
}
L.last--;
}

int main()
{
List L1;
ListInit(L1); //初始化线性表
printf("1.是否为空表?\n"); //首先判空,检查线性表是否初始化,下同
if( ListEmpty(L1) )
printf("是\n");
else
printf("否\n");

printf("2.遍历线性表:\n"); //遍历线性表
ListTraverse(L1);

int n; //接着创建n个元素的线性表
printf("3.输入线性表的元素个数:");
scanf("%d",&n);
printf("4.输入元素(回车输入下一个):");
ListBuilt(L1,n);

printf("5.是否为空表?\n"); //再次判空,检查是否输入元素,下同
if( ListEmpty(L1) )
printf("是\n");
else
printf("否\n");

printf("6.遍历线性表:\n"); //遍历线性表
ListTraverse(L1);

printf("7.输入你要查找的第i个元素,i="); //查找元素
int i;
scanf("%d",&i);
printf("第%d个元素为:%d\n",i,ListGet(L1,i));

printf("8.输入需要查找的元素x="); //输入一个值,从线性表中查找与给定元素值相同的元素在线性表中的位置
ElemType x;
scanf("%d",&x);
printf("元素%d在线性表的位置为:%d\n",x,ListLocate(L1,x));

printf("9.在第i个位置插入元素x\n"); //在第i个位置插入元素x
printf("i=");
scanf("%d",&i);
printf("x=");
scanf("%d",&x);
ListInsert(L1,i,x);

printf("10.遍历线性表:\n"); //遍历线性表
ListTraverse(L1);
printf("线性表的长度为:%d\n",ListLength(L1));

printf("11.输入删除第i个元素,i="); //删除第i个元素
scanf("%d",&i);
ListDelete(L1,i);
printf("12.遍历线性表:"); //遍历线性表
ListTraverse(L1);
printf("线性表的长度为:%d\n\n",ListLength(L1));

printf("13.清空线性表\n"); //清空线性表
ListClear(L1);

printf("14.遍历线性表:\n"); //遍历线性表
ListTraverse(L1);
printf("线性表的长度为:%d\n\n",ListLength(L1));
return 0;
}
我把改完的放到顶上去了,我感觉能写这么长的代码的人不应该犯这样的错误啊,而且错误基本上都是一样的,还有你的链表插入的算法有问题,不能刚好查到链表的尾,希望你能改一下。

C语言数据结构代码纠错求助
=0) { s=(struct Student*)malloc(LEN); scanf("%ld,%f",&s->num,&s->score); if(s->num==0) break; s->next=p->next; p->next=s; } head->next=p; return(head);}

C语言数据结构中“顺序表”应怎样清空和销毁?
1、首先是定义一个这样的函数,名称为【SeqSearch】,返回值为Int。2、接下来就可以,传入一个数组,一个长度,和一个查找的值。3、此时,就能从零开始到长度减一个个判断。4、此时,可以判断,如果找到了就返回当前下标加一。5、否则就让这个函数返回负一。6、此时,可以在Main函数中配合运行测试。7...

数据结构(C语言版),求高手解决。。
1.二叉树是度为2的有序树( )【答案】× 2.完全二叉树一定存在度为1的结点( )【答案】× 3.深度为K的二叉树中结点总数≤2k-1( )【答案】√ 4.由一棵二叉树的先序序列和后序序列可以惟一确定它( )【答案】× 5.完全二叉树中,若一个结点没有左孩子,则它必是树叶...

数据结构c语言版一道题求解
完整代码:include <stdio.h>#include <stdlib.h>typedef int DataType; struct SeqList{ int MAXNUM; \/* 顺序表中最大元素的个数*\/ int n; \/* 存放线性表中元素的个数n≤MAXNUM *\/ DataType *element; \/* element[0],element[1],…,element[n - 1]存放线性表...

C语言版数据结构程序设计求大神帮助
struct { SElemType elem[MaxSize]; int front,rear; }SqQueue; \/* 队列 *\/ void InitQueue(SqQueue* pQ) \/* 初始化队列,开始时队列为空 *\/ { pQ->front=pQ->rear=0; } int EnQueue(SqQueue* pQ,SElemType e) \/* 进队 *\/ { if ((pQ->rear+1)%MaxSize == pQ->front)...

数据结构 用C语言实现顺序表的建立及遍历
include <stdio.h>#include <malloc.h>typedef struct nlist{ int *np; int len;\/\/已使用地址个数 int maxlen;\/\/最大地址个数}NLT;NLT *createlist();\/\/创建顺序表int addtolist(NLT *nlist);\/\/向顺序表插入元素void pList(NLT *nlist);\/\/遍历顺序表int main(){ int i...

C语言数据结构写出相应的代码:在顺序表中,新建一个顺序表,并从键盘输...
C语言数据结构写出相应的代码:在顺序表中,新建一个顺序表,并从键盘输入数字到顺序表中?代码是C语言  我来答 1个回答 #热议# 作为女性,你生活中有感受到“不安全感”的时刻吗?情深深爱切切 2022-12-14 · 情深深雨蒙蒙,多少楼台烟雨中 情深深爱切切 采纳数:80 获赞数:42 向TA提问 私信TA ...

数据结构顺序循环队列中取模(求余)问题,C语言
即R<F 比如 一共10个元素 M=10 先入队9个元素,队头指向最后一个 即9 然后 出队5个元素,队尾指向5 再入队三个元素, 队头指向2 这是队内实际个数为(2-5+10)%10 = 7个 至于为什么要加上 是因为 当F=9 R=5的时候 (9-5+10)=14 14%10才是正确结果4 ...

用c语言编写数据结构实例中有下面的代码,那个!是什么意思。整个语句看不...
在C语言中,!的意思是否,比如说1!=2就是1≠2的意思。当!符号用在一个变量变量并嵌套在if中时。if(!newbase)意思就是当newbase为空或者为假时退出。假如newbase是一个char,char newbase=NULL;此时,!newbase为真,就执行退出语句。但是当char newbase=abc时,newbase为真,!newbase就为假,...

关于数据结构的顺序表合并的代码问题
显然,你上述代码void CreateList_L(LinkList &L, int n)中,是用来声明引用的,估计你用的是C++版本的数据结构,而TC是用来编译C语言的,不支持C++的语法,所以报错。解决此问题有两种办法:1、用支持C++的编译器运行此程序就不会报错,比如VC6.0。2、将void CreateList_L(LinkList &L, int n...

相似回答