顺序表的A-A交B

Posted mykonons

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了顺序表的A-A交B相关的知识,希望对你有一定的参考价值。

#include<iostream>
#include<malloc.h>
#include<string.h>
#include<stdio.h>
#define max 100
using namespace std;
typedef struct node
{
int data[max];
int len;
} seq;
void init(seq *l)
{
l->len=0;
}
int empty(seq l)
{
if(l.len==0)
{
cout<<"线性表为空!";
return 1;
}
else
return 0;
}
int getelem(seq l,int i,int *e)
{
if(empty(l))
{
printf("线性表为空呢!");
exit(-1);
}
int j=0;
if(i<0||i>l.len)
{printf("位置不合法");
}
*e=l.data[i-1];
return 1;
}
int located(seq l,int e)
{
for(int i=0;i<l.len;i++)
{
if(e==l.data[i])
return i;
else
return 0;
}

}

int insert(seq *l,int i,int e)
{
if(i<1||i>l->len+1)
{
printf("位置不合法!");
return 0;
}
else if(l->len >= max)
{
printf("数量错误,顺序表溢出!");
return 1;
}

else
{

int j=0;

for(j=l->len;j>=i;j--)
{
l->data[j]=l->data[j-1];
}
l->data[i-1]=e;

l->len++;
}
return 1;
}

int del(seq *l,int i,int *e)
{
if(i<0||i>l->len)
{
printf("位置不合法!\\n");
exit(-1);
}
else if(l->len<=0)
{
printf("顺序表已空");
return 0;

}
else
{ *e=l->data[i-1];
for(int j=i;j<=l->len;j++)
{
l->data[j]=l->data[j+1];
}
l->len--;
}

return 1;
}

int length(seq l)
{
return l.len;
}

int main()
{
int i,j,k;
seq A,B;int e;
init(&A);
init(&B);
for(int i=1;i<=10;i++)
{
insert (&A,i,i);

}

for(int i=1;i<=A.len-1;i++)
{
cout<<A.data[i]; cout<<" ";
}
cout<<endl;
for(int j=0,i=1;j<20;i++,j=j+2)
{
insert(&B,i,j+1);
}

for(int i=1;i<=B.len-1;i++)
{
cout<<B.data[i]; cout<<" ";
}
cout<<endl;

for(int j=0;j<=B.len;j++)
{
for(int i=0;i<=A.len;i++)
{

if(A.data[i]==B.data[j])
{
del(&A,i,&e);
}
}
}
for(int i=0;i<=A.len-1;i++)
{
cout<<A.data[i];cout<<" ";
}

return 0;
}

 

以上是关于顺序表的A-A交B的主要内容,如果未能解决你的问题,请参考以下文章

只要我们选择正确的连接类型,连接表的顺序是不是无所谓?

基础数据结构-线性表-顺序表的合并操作

顺序表的查找

数据结构--顺序表及其实现

数据结构《一》顺序表的实现

顺序表的实现以及力扣练习题