数据结构的一道题,求解,急急急!!谢谢
基于单链表实现线性表的以下操作:单链表初始化,插入,删除,查找,单链表判空,打印(在屏幕显示)单链表中的所有元素...
基于单链表实现线性表的以下操作:单链表初始化 , 插入, 删除, 查找, 单链表判空,打印(在屏幕显示)单链表中的所有元素
展开
3个回答
展开全部
#include<stdio.h>
#include<malloc.h>
#define MAXSIZE 100
typedef int datatype;
typedef struct node{
datatype data[MAXSIZE];
int length;
}seqlist,*pseqlist;
pseqlist init_seqlist(void)
{
pseqlist p;
p=(pseqlist)malloc(sizeof(seqlist));
if(p)
(*p).length=0;
return p;
}
int length_seqlist(seqlist l )
{
return(l.length );
}
int insert_seqlist(pseqlist p,int i,datatype x)
{
int j;
if(!p)
{
printf("表不存在");
return -2;
}
if(p->length>=MAXSIZE)
{
printf("the biao is out");
return -1;
}
if(i<1||i>p->length+1)
{
printf("insert is illgurre");
return 0;
}
for(j=p->length-1;j>=i-1;j--)
p->data[j+1]=p->data[j];
p->data[i-1]=x;
p->length++;
return 1;
}
int delete_seqlist(pseqlist p,int i)
{
int j;
if(!p)
{
printf("表不存在");
return -2;
}
if(p->length>=MAXSIZE)
{
printf("the biao is out");
return -1;
}
if(i<1||i>p->length+1)
{
printf("insert is illgurre");
return 0;
}
for(j=p->length-1;j>=i-1;j--)
p->data[j-1]=p->data[j];
// p->data[i-1]=x;
p->length--;
return 1;
}
int location_seqlist(seqlist l,datatype x)
{
int i=0;
while(i<l.length&&l.data[i]!=x)
i++;
if(i>=l.length) return 0;
else return i+1;
}
void main()
{
pseqlist p;
seqlist l;
datatype i;
printf("初始化顺序表p\n");
p=init_seqlist();
printf("顺序表长度:");
printf("%d\n",p->length );
if(p->length==0)
printf("初始化成功!\n");
else
printf("初始化失败!\n");
insert_seqlist(p,1,1);
insert_seqlist(p,2,3);
insert_seqlist(p,3,5);
printf("顺序表长度:");
printf("%d\n",p->length );
for(i=0;i<=p->length-1;i++)
printf("%d ",p->data[i]);
printf("\n");
location_seqlist(l,1);
printf("要查找的数的位置是第%d个\n",i);
printf("要查的数值为:%d\n",p->data[i-1]);
delete_seqlist(p,2);
printf("delete顺序表长度:");
printf("%d\n",p->length );
}
自己看看吧,功能基本上都有。。。
#include<malloc.h>
#define MAXSIZE 100
typedef int datatype;
typedef struct node{
datatype data[MAXSIZE];
int length;
}seqlist,*pseqlist;
pseqlist init_seqlist(void)
{
pseqlist p;
p=(pseqlist)malloc(sizeof(seqlist));
if(p)
(*p).length=0;
return p;
}
int length_seqlist(seqlist l )
{
return(l.length );
}
int insert_seqlist(pseqlist p,int i,datatype x)
{
int j;
if(!p)
{
printf("表不存在");
return -2;
}
if(p->length>=MAXSIZE)
{
printf("the biao is out");
return -1;
}
if(i<1||i>p->length+1)
{
printf("insert is illgurre");
return 0;
}
for(j=p->length-1;j>=i-1;j--)
p->data[j+1]=p->data[j];
p->data[i-1]=x;
p->length++;
return 1;
}
int delete_seqlist(pseqlist p,int i)
{
int j;
if(!p)
{
printf("表不存在");
return -2;
}
if(p->length>=MAXSIZE)
{
printf("the biao is out");
return -1;
}
if(i<1||i>p->length+1)
{
printf("insert is illgurre");
return 0;
}
for(j=p->length-1;j>=i-1;j--)
p->data[j-1]=p->data[j];
// p->data[i-1]=x;
p->length--;
return 1;
}
int location_seqlist(seqlist l,datatype x)
{
int i=0;
while(i<l.length&&l.data[i]!=x)
i++;
if(i>=l.length) return 0;
else return i+1;
}
void main()
{
pseqlist p;
seqlist l;
datatype i;
printf("初始化顺序表p\n");
p=init_seqlist();
printf("顺序表长度:");
printf("%d\n",p->length );
if(p->length==0)
printf("初始化成功!\n");
else
printf("初始化失败!\n");
insert_seqlist(p,1,1);
insert_seqlist(p,2,3);
insert_seqlist(p,3,5);
printf("顺序表长度:");
printf("%d\n",p->length );
for(i=0;i<=p->length-1;i++)
printf("%d ",p->data[i]);
printf("\n");
location_seqlist(l,1);
printf("要查找的数的位置是第%d个\n",i);
printf("要查的数值为:%d\n",p->data[i-1]);
delete_seqlist(p,2);
printf("delete顺序表长度:");
printf("%d\n",p->length );
}
自己看看吧,功能基本上都有。。。
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询