| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 645 人关注过本帖
标题:一个顺序表问题
只看楼主 加入收藏
紫叶傲雪
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2005-12-4
收藏
 问题点数:0 回复次数:2 
一个顺序表问题

我想对顺序表进行插入和删除 , 没有错误 可以运行 , 可是结果怎么是错误的啊 ,大家帮我看看
#define listsize 100
#include <stdio.h>
#include <malloc.h>
struct seqlist{
int data[listsize];
int length;
};
int i;
void insertlist(struct seqlist *l,int x,int i)
{
int j ;

if(i<0||i>l->length)
printf("error");
if(l->length>=listsize)
printf("error");

for(j=l->length-1;j>=i;j--)
l->data[j+1]=l->data[j];
l->data[i]=x;
}
void initlist(struct seqlist *l)
{
l->length=0;
}
void displaylist(struct seqlist *l)
{
int i;
puts("now the list is:");
for(i=0;i<l->length;i++)
printf("%d",l->data[i]);
printf("\n");
return;
}
void main()
{
struct seqlist *q;
int i,n,t;
q=(struct seqlist *)malloc(sizeof(struct seqlist));
initlist(q);
puts("pleast input the size of the list:");
scanf("%d",&n);
printf("please input the elements of the list one by one:");
for(i=0;i<n;i++)
{
scanf("%d",&t);
insertlist(q,t,i);
}
displaylist(q);
puts("please input the position of the element:");
scanf("%d",&i);
insertlist(q,t,i);
displaylist(q);
puts("\n press any key to quit ...");

}

搜索更多相关主题的帖子: length int 顺序表 
2006-04-02 14:28
houxran
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2006-4-2
收藏
得分:0 

关于length,也就是数组的下标我没有弄清楚
斑竹的子函数写的有些乱,以下是我写的程序,实现的是相同的功能:
#define listsize 100
#include <stdio.h>
#include <malloc.h>
typedef struct{
int data[listsize];
int length;
}seqlist;
seqlist *init_seqlist(void);
int insert_seqlist(seqlist *s,int i,int x);
int displaylist(seqlist *s);
int main()
{
seqlist *s;
int i,j,x;
s=init_seqlist();
printf("请输入数组的长度:\n");
scanf("%d",&j);
s->length=j;
printf("请输入这个数组:\n");
for (i=0;i<j;i++){
scanf("%d",&s->data[i]);
}
printf("请输入i和x的值:\n");
scanf("%d%d",&i,&x);
insert_seqlist(s,i,x);
displaylist(s);
printf("\n");
return 0;
}
seqlist *init_seqlist(void)
{
seqlist *s;
s=(seqlist *)malloc(sizeof(seqlist));
if (!s){
printf("申请空间失败!\n");
return NULL;
}
else{
s->length=-1;
return s;
}
}
int insert_seqlist(seqlist *s,int i,int x)
{
int j;
if (s->length==listsize-1){
printf("表满\n");
return -1;
}
if (i<1||i>s->length+1){
printf("插入的位置错误 \n");
return 0;
}
for (j=s->length-1;j>=i-1;j--){
s->data[j+1]=s->data[j];
}
s->data[i-1]=x;
s->length++;
return 1;
}
int displaylist (seqlist *s)
{
int i;
for (i=0;i<s->length;i++){
printf("%d ",s->data[i]);
}
return 0;
}

我用vc执行,没有发现错误

2006-04-02 16:01
紫叶傲雪
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2005-12-4
收藏
得分:0 

谢谢你的帮助,我知道自己错那了,谢谢。


2006-04-09 08:54
快速回复:一个顺序表问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.037022 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved