首页 > 其他分享 >线性表A,B顺序存储合并

线性表A,B顺序存储合并

时间:2023-11-17 11:47:19浏览次数:31  
标签:pre Node p1 线性表 合并 next p2 now 顺序存储

7-1 线性表A,B顺序存储合并

有两张非递增有序的线性表A,B,采用顺序存储结构,两张表合并用c表存,要求C为非递减有序的,然后删除C表中值相同的多余元素。元素类型为整型

#include<iostream>
#include<cstring>
using namespace std;
typedef struct f{
int data;
f* next;
}node,*Node;
void build(f *p){
int x;
while(cin>>x,~x){
f *now=new node();
now->data=x;
now->next=p->next;
p->next=now;
}
}
void build(Node p1,Node p2,Node pre){
p1=p1->next;
p2=p2->next;
while(p1!=NULL&&p2!=NULL){
if(p1->data<=p2->data){
Node now=new node();
now->data=p1->data;
now->next=pre->next;
pre->next=now;
pre=pre->next;
p1=p1->next;
}
else{
Node now=new node();
now->data=p2->data;
now->next=pre->next;
pre->next=now;
pre=pre->next;
p2=p2->next;
}
}
while(p1!=NULL){
Node now=new node();
now->data=p1->data;
now->next=pre->next;
pre->next=now;
pre=pre->next;
p1=p1->next;
}
while(p2!=NULL){
Node now=new node();
now->data=p2->data;
now->next=pre->next;
pre->next=now;
pre=pre->next;
p2=p2->next;
}
}
void flush(Node p){
if(p)p=p->next;
Node pre=p;
if(p)p=p->next;
while(p!=NULL){
if(p->data==pre->data){
pre->next=p->next;
Node k=p;
p=p->next;
delete k;
}
else{
pre=p;
p=p->next;
}
}
}
void show(Node p){
p=p->next;
while(p!=NULL){
cout<<p->data;
p=p->next;
if(p!=NULL) cout<<',';
}
}
int main(){
Node p1=new node();
build(p1);
Node p2=new node();
p2->next=NULL;
build(p2);
Node p3=new node();
p3->next=NULL;
build(p1,p2,p3);
flush(p3);
show(p3);
return 0;
}

标签:pre,Node,p1,线性表,合并,next,p2,now,顺序存储
From: https://www.cnblogs.com/zh-ang-zhang/p/17838296.html

相关文章

  • jq 数组对象,重复数据进行合并
    var bindif = [{        "ifname": "Ge0/2/1",        "ip": "20.1.1.1",        "mask": "255.255.255.0"    }, {        "ifname": "Ge0/2/5",        "ip6addr": &q......
  • 数组类算法题——合并非递减数组
    合并非递减数组题目:给你两个按非递减顺序排列的整数数组nums1和nums2,另有两个整数m和n,分别表示nums1和nums2中的元素数目。请你合并nums2到nums1中,使合并后的数组同样按非递减顺序排列。注意:最终,合并后数组不应由函数返回,而是存储在数组nums1中。为了应......
  • 数据结构C语言之线性表
    发现更多计算机知识,欢迎访问Cr不是铬的个人网站1.1线性表的定义线性表是具有相同特性的数据元素的一个有限序列对应的逻辑结构图形:从线性表的定义中可以看出它的特性:(1)有穷性:一个线性表中的元素个数是有限的(2)一致性:一个线性表中所有元素的性质相同,即数据类型相同(3)序列性:各......
  • 倾斜摄影三维模型根节点合并的纹理压缩与抽稀关键技术分析
    倾斜摄影三维模型根节点合并的纹理压缩与抽稀关键技术分析 倾斜摄影三维模型的根节点合并、纹理压缩和抽稀是关键的技术,可以有效地减少模型数据的大小,提高渲染效率和加载速度。在本文中,我们将对这三个技术进行详细分析。1、根节点合并:倾斜摄影生成的三维模型往往由多个子节......
  • 洛谷p1090__合并果子
    合并果子可以作为mulitset的板子题 mulitset的accode#include<iostream>#include<set>usingnamespacestd;multiset<int,less<int>>m;intmain(){intn;cin>>n;for(inti=0;i<n;i++){intt;cin>......
  • 第二章——线性表
    第二章——线性表 一、线性表简述1、什么是线性表?线性表(linearlist)是n个具有相同特性的数据元素的有限序列,是一种在实际中广泛使用的数据结构。像数组charbuf[5]={1,2,3,4,5},里面出现的元素都是char型的,不会是int、float等其他类型。2、常见的线性表顺序表、链表、......
  • 使用C#将几个Excel文件合并去重分类
    需要将几个Excel表格里面的数据去重,然后将每个站点的数据另存为一张Sheet上。几个表格如下所示:  实现效果如下所示: 具体实现需要使用EPPlus操作Excel安装EPPlus如下所示: 为了更好的演示与说明,把步骤进行了拆分,先导入Excel数据,再去重,再进行数据分类,最后再导出为E......
  • 三维模型的顶层合并构建的点云抽稀关键技术分析
    三维模型的顶层合并构建的点云抽稀关键技术分析 倾斜摄影超大场景的三维模型的顶层合并通常会生成大量的点云数据,这对于后续处理和应用可能会带来一些挑战。为了减少数据存储和处理的复杂性,可以采用点云抽稀处理技术来降低点云密度和数据量。本文将对几种常见的点云抽稀处理技......
  • (链表)05-合并K个已排序的链表
    1importjava.util.*;23/**4*Definitionforsingly-linkedlist.5*publicclassListNode{6*intval;7*ListNodenext;8*ListNode(intx){9*val=x;10*next=null;11*}12*}13*/1......
  • el-table合并行 根据id合并行
    <template><div><el-tableref="table":data="tabData":span-method="objectSpanMethod"><el-table-columnprop="name"label="名称"/><el-table-c......