数据结构的一道题,求解,急急急!!谢谢
基于单链表实现线性表的以下操作:单链表初始化,插入,删除,查找,单链表判空,打印(在屏幕显示)单链表中的所有元素...
基于单链表实现线性表的以下操作:单链表初始化 , 插入, 删除, 查找, 单链表判空,打印(在屏幕显示)单链表中的所有元素
展开
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 );
}
自己看看吧,功能基本上都有。。。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询