数据结构中线性表的插入!
#include<iostream.h>#define DATATYPE1 int
#define MAXSIZE 100
typedef struct
{
DATATYPE1 datas[MAXSIZE];
int last;
int len;
}SEQUENLIST;
int locate(SEQUENLIST *a, DATATYPE1 x)
{
int k;
k=1;
while(k<=a->last&&a->datas[k-1]!=x)
k++;
if(k<=a->last)
return k;
else return 0;
}
int insert(SEQUENLIST *a, DATATYPE1 x, int i)
//将新元素x插入到顺序表a的第i个元素的前面
{
int k;
if(i<1||i>a->last||a->last>=MAXSIZE)
return 0;
else
{
for(k=a->last;k>=i;k--)
a->datas[k]=a->datas[k-1];
a->datas[i-1]=x;
a->last=a->last+1;
return 1;
}
}
int unit(SEQUENLIST *la, SEQUENLIST *lb)
{
int locate(SEQUENLIST *a, DATATYPE1 x);
int insert(SEQUENLIST *a, DATATYPE1 x, int i);
int i;
for(i=1;i<=lb->last;i++)
if(!locate(la,lb->datas[i-1]))
insert(la,lb->datas[i-1],la->last+1);
return 1;
}
void printSEQUENLIST(SEQUENLIST *a)
{
int i;
for(i=0;i<=10;i++)
{
cout<<a->datas[i]<<endl;
}
}
int main()
{
int i=0;
SEQUENLIST sd;
SEQUENLIST sd1;
SEQUENLIST *t=&sd;
SEQUENLIST *p=&sd1;
t->len=8;
t->last=t->len;
p->len=8;
p->last=t->len;
t->datas[1]=4;
t->datas[2]=7;
t->datas[3]=8;
t->datas[4]=3;
t->datas[5]=5;
p->datas[1]=10;
p->datas[2]=9;
p->datas[3]=8;
p->datas[4]=3;
p->datas[5]=5;
unit(p,t);
printSEQUENLIST(t);
printSEQUENLIST(p);
return 0;
}
能运行 可是主函数好像根本没有调用unit函数、、、
[ 本帖最后由 李亚宽 于 2012-3-8 19:25 编辑 ]