有序顺序表

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
else
L3.base[i]=L2.base[i-L1.length];
}
return 1;
}
int main()
{
va L,L1,L2;
initlist_va(L);
initlist_va(L1);
initlist_va(L2);
insertlist_va(L1,5);
readlist_va(L1);
if(!newbase)
exit(0);
L.base=newbase;
L.listsize+=LISTINCREMENT;
}
L.base[L.length]=element;
++L.length;
return 1;
}
int comlist_va(va &L1, va &L2,va& L3)
{
cout<<"****"<<endl;
{
int *newbase; //m是为了确定开始时i的位置
if(L.listsize<=L.length) //判断存储空间是否已经满,如果满了,则分配内存
{
newbase=(int *)realloc(L.base,(List_init_size+LISTINCREMENT)*sizeof(int));
int *newbase,i;
if(L3.listsize<L2.length+L1.length)
{
newbase=(int *)realloc(L1.base,(L2.length+L1.length)*sizeof(int));
if(!newbase)
exit(0);
L3.base=newbase;
readlist_va(L2);
return 1;
}
for(int j=i;j<L.length;j++)
{
if(L.base[i]>L.base[j])
{
temp=L.base[i];
L.base[i]=L.base[j];
L.base[j]=temp;
}
}
for(int i=0;i<L.length;i++)
{Leabharlann Baidu
cout<<L.base[i]<<" ";
}
return (1);
}
int insertlist_va(va &L,int i,int element) //插入一个元素
{
int *newbase,m,temp=0,count=0;
m=i; //m是为了确定开始时i的位置
if(m<1||m>L.length+1) //判断插入位置是否遵循客观事实
if(!L.base)
return 0;
else
{
L.length=0;
L.listsize=List_init_size;
}
return 1;
}
int readlist_va(va &L) //遍历函数
{
if(L.length==0)
return 0;
int temp;
for(int i=0;i<L.length;i++)
#define LISTINCREMENT 10 //线性表存储空间的分配增量
typedef struct //建立一个顺序表
{
int *base;
int length;
int listsize;
}va;
int initlist_va(va &L) //初始化一个顺序表
{
L.base=(int *)malloc(List_init_size*sizeof(int));
L3.length=L2.length+L1.length;
L3.listsize=L2.length+L1.length;
}
L3.length=L2.length+L1.length;
for(i=0;i<L3.length;i++)
{
if(i<L1.length)
L3.base[i]=L1.base[i];
insertlist_va(L,1,3);
insertlist_va(L,1,1);
insertlist_va(L,1,2);
insertlist_va(L,1,3);
insertlist_va(L,1,1);
insertlist_va(L,2);
readlist_va(L);
comlist_va(L,L1,L2);
return(0);
}
int delelist_va(va &L,int n)
{
if(n<1||n>L.length)
exit(1);
for(n-1;n-1<L.length;n++)
L.base[n-1]=L.base[n];
--L.length;
return 1;
}
int insertlist_va(va &L,int element)
L.base=newbase;
L.listsize+=LISTINCREMENT;
}
if(L.length!=0)
{
for(m=L.length-1;m>=i-1;m--)
{
L.base[m+1]=L.base[m];
}
}
L.base[i-1]=element;
//在i个元素位置填入所要添加的元素
++L.length;
exit(0);
if(L.listsize<=L.length) //判断存储空间是否已经满,如果满了,则分配内存
{
newbase=(int *)realloc(L.base,(List_init_size+LISTINCREMENT)*sizeof(int));
if(!newbase)
exit(0);
/*需求:建立一个顺序表,并附加各种功能
思路步骤:
1,先建立一个顺序表,并对其初始化
2,遍历顺序表
3,添加插入一个元素的函数
4,添加删除一个元素的函数
5,添加合并两个顺序表的函数
*/
#include<iostream>
using namespace std;
#include<stdlib.h>
#define List_init_size 100 //线性表存储空间的初始分配量
相关文档
最新文档