关于C语言实现数据结构的题目
顺序表问题:LALB的并集和LALB的交集的差,中文描述,就是顺序表B中一个个存储的元素在A中找,要是找到就在A中删去该元素,如果找不到就在顺序表A的末尾加上该元素,因为...
顺序表问题:LALB的并集和LALB的交集的差,中文描述,就是顺序表B中一个个存储的元素在A中找,要是找到就在A中删去该元素,如果找不到就在顺序表A的末尾加上该元素,因为初学数据结构,能看的懂,但是写实在是大问题,求各位高手规范一点写一个让我好好研究下
展开
2个回答
展开全部
#include <iostream.h>
#include <stdlib.h>
#include <math.h>
void Function(char *p1,char *p2,int &l1,int &l2)
{
for(int i=0;i<l2;i++)
{
bool sign=false;
for(int j=0;j<l1;j++)
{
if(p2[i]==p1[j]) //如果lb中的某个字符在la中出现过
{
for(int k=j;k<l1;k++)
p1[k]=p1[k+1]; //把la中从这个字符开始,后一个位置覆盖前一个位置
l1--; //把la的长度减一
sign=true;
break;
}
}
if(!sign) //如果lb中的某个字符没有在la中出现过
{
p1[l1]= p2[i]; //把这个字符放在la的末尾
l1++;
}
}
}
int main()
{
char la[1024]="renzhicu" ;
char lb[1024]="xingbesha";
int lalength=strlen(la);
int lblength=strlen(lb);
Function(la,lb,lalength,lblength);
printf("%s",la);
system("pause");
return 0;
}
#include <stdlib.h>
#include <math.h>
void Function(char *p1,char *p2,int &l1,int &l2)
{
for(int i=0;i<l2;i++)
{
bool sign=false;
for(int j=0;j<l1;j++)
{
if(p2[i]==p1[j]) //如果lb中的某个字符在la中出现过
{
for(int k=j;k<l1;k++)
p1[k]=p1[k+1]; //把la中从这个字符开始,后一个位置覆盖前一个位置
l1--; //把la的长度减一
sign=true;
break;
}
}
if(!sign) //如果lb中的某个字符没有在la中出现过
{
p1[l1]= p2[i]; //把这个字符放在la的末尾
l1++;
}
}
}
int main()
{
char la[1024]="renzhicu" ;
char lb[1024]="xingbesha";
int lalength=strlen(la);
int lblength=strlen(lb);
Function(la,lb,lalength,lblength);
printf("%s",la);
system("pause");
return 0;
}
更多追问追答
追问
如果我不是直接覆盖,采用删除呢?怎么写啊
追答
覆盖的效果不就是删除吗?删除我不太明白是什么意思,这课是连续空间上的操作,难道要把内存地址删除吗?连续空间的删除一般都是用覆盖实现的
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
2014-03-09
展开全部
先把顺序表当做数组来写代码,然后涉及到数组的地方都改成线性表,就可以了。
具体的就不写了,有点费时间。
具体的就不写了,有点费时间。
追问
我就是一直写不好才来问诶
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询