顺序表
程序如下:#include<stdio.h>
struct list
{
char list1;
int size;
};
void setnull(struct list *p)
{
p->size=0;
}
int length(struct list *p)
{
return(p->size);
}
void insert(struct list *p,char x,int i)
{
int j;
if(i<1&&i>p->size+1)
printf("无法插入.");
else
{
p->size++;
for(j=p->size-1;j<=i;j--)
p->list1=p->list1;
p->list1=x;
}
}
void del(struct list *p,int i)
{
int j;
if(i>p->size||i<1)
printf("不正确.");
else
{
for(j=i-1;j<p->size-1;j++)
p->list1=p->list1;
p->size--;
}
}
display(struct list *p)
{
int j;
for(j=0;j<p->size-1;j++)
printf("%c-",p->list1);
printf("%c",p->list1);
}
void main()
{
struct list l;
setnull(&l);
insert(&l,'a',1);
insert(&l,'b',2);
insert(&l,'c',3);
display(&l);
}
这个顺序表的程序为什么运行不了呢?要怎么修改才可以呢? 主要更新模块
void insert(struct list *p,char x,int i)
{
int j;
if(i<1&&i>p->size+1)
printf("无法插入.");
else
{
p->size++;
for(j=p->size-1;j>=i-1;j--)
p->list1=p->list1;
p->list1=x;
}
}
以上.... 似乎还是不行的说, 是插入怎么会是 p->list=p->list呢,怎么也应该是 J-1赋给 J 吧 那个是J,是小写的j它与[重合了
还有忘了说了,你的顺序表一开始时没有初使化数据,所以无法执行插入操作.....
void create(struct list *p,int i)
{
char cdata;
int count;
p->size=i;
for(count=0;count<=i-1;count++)
{
scanf("%c",&cdata);
p->list1=cdata;
}
}
页:
[1]