顺序表的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;
}

时间: 2024-08-06 12:09:48

顺序表的A-A交B的相关文章

顺序表实验2

<数据结构> 实验报告 题目:_顺序表的实现 学号:___________ 姓名:___________ 东南大学计算机系 实验题目 一.    实验目的 1.    掌握顺序表的基本操作,实现顺序表的插入.删除.查找等基本运算. 二.    实验内容 1.                       完善顺序表的定义,并运用其实现线性表的操作. 2.                       (课上任务) 选题一:集合的交.并.差运算 [问题描述]         编制一个能演示执行集合的

数据结构(一)线性表——顺序表

一.顺序表基本操作的实现 通常把顺序存储结构实现的线性表称为顺序表. 1.状态类型Status的定义 #define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 #define INFEASIBLE -1 #define OVERFLOW -2 typedef int Status; typedef char ElemType; 2.顺序表类型SqList的定义 #define ListSpaceIncr 20 typedef stru

C语言--顺序表

#pragma once            //只编译一次 #include <memory.h> #include<assert.h> #include <stdio.h> #define  MAX_SIZE 100 typedef int DataType;             //数据类型重命名 typedef struct SeqList         //定义结构体类型 {     DataType array[MAX_SIZE];     // 数

顺序表算法设计笔记

1.已知长度为 n 的线性表 A 采用顺序存储结构.设计一个时间复杂度为O(n).空间复杂度为O(1)的算法,该算法删除线性表中所有值为 x 的元素数据元素. 以下两种方法都不满足要求: 如果删除一个值为 x 的元素都进行移动, 其时间复杂度为O(n^2),时间复杂度为O(1). 如果借助一个新的顺序表, 存放将A中所有不为x的元素,其时间复杂度O(n), 空间复杂度为O(n). 解法一:设删除 A 中所有值等于 x 元素后的顺序表为A1, 显然A1包含在 A 中, 为此A1重用 A 的空间.

2、顺序表

|   版权声明:本文为博主原创文章,未经博主允许不得转载. 从这节开始,以后的每一篇博文均会只描述一种结构.这节要解决的是有关顺序表的问题,下面就是一些顺序表的基本的知识点: 1. 顺序表其实就是线性表的一种,它除开始节点和结束节点之外的其他节点,均有且只有一个直接前趋和一个直接后继,开始 节点只有一个后继节点,结束节点只有一个前趋节点. 2. 用顺序存储方法存储的线性表就称为顺序表. 3. 顺序存储方法就是将表的节点按逻辑上的次序依次的存放在一组连续的内存单元中,这里是指在逻辑上连续排列,在

顺序表查找和有序表查找

查找里面顺比表查找和有序表查找(包括二分查找,插值查找,斐波那契查找)比较简单,直接贴代码,代码里面有详细注释. 1 #include <iostream> 2 using namespace std; 3 4 //顺序表查找(线性查找.静态表查找) 时间复杂度为O(n) 5 int Seq_Search(int *s,int n,int key) 6 { 7 s[0] = key; //设置了一个哨兵,避免了每次比较一次过后都要判断查找位置是否越界 8 int i = n; 9 while

线性表---顺序表

线性结构的特点是:在非空的有限集合中,只有唯一的第一个元素和唯一的最后一个元素.第一个元素没有直接前驱元素,最后一个没有直接的后继元素.其它元素都有唯一的前驱元素和唯一的后继元素. 线性表是一种最简单的线性结构.线性表可以用顺序存储结构和链式存储结构存储,可以在线性表的任意位置进行插入和输出操作. 要想将线性表在计算机上实现,必须把其逻辑结构转化为计算机可识别的存储结构.线性表的存储结构主要有两种:顺序存储结构和链式存储结构. 线性表的顺序表示与实现 线性表的顺序存储结构 线性表的顺序存储结构指

模板实现顺序表

类模板的成员函数: 类模板的成员函数本身是一个普通函数.但是,类模板的每个实例都有其自己版本的成员函数.因此,类模板的成员函数具有和模板相同的模板参数.因此,在=定义在类模板之外的成员函数就必须以template开始,后跟类模板参数列表. 类模板中的友元函数: 类模板中的友元函数,应该在类中定义.若只在类中声明,在类外定义,则在链接时会出现错误. 类模板实现顺序表: "SeqList.h" //冒泡法 "test.cpp"

顺序表

#include <cstdio> #include <cstring> ///都用c语言写的 #include <iostream> ///建议从主函数开始看 #include <cstdlib> using namespace std; int sequence_map[1000]; int total_sequence = 0; void init_sequence() ///主界面. ///一级菜单中顺序表的操作界面 init初始化 { printf