线性表--算法设计题2.23
C=(a1,b1,……am,bm,……bn) 当m<=n时;
C=(a1,b1,……an,bn,……am) 当m>n时;
C code:
#include<stdio.h>
#define LIST_INIT_SIZE 10
#define LIST_INCREMENT 2
#define ERROR 0
#define OK 1
#define OVERFLOW -1
#define TRUE 1
typedef int Status;
struct SqList
{
int *elem;
int length;
int listsize;
};
void InitList(SqList &L)
{
L.elem=(int*)malloc(LIST_INIT_SIZE*sizeof(int));
if(!L.elem)
exit(OVERFLOW);
L.length=0;
L.listsize=LIST_INIT_SIZE;
}
Status ListInsert(SqList &L,int i,int e)
{
int *newbase,*q,*p;
if(i<1||i>L.length+1)
return ERROR;
if(L.length==L.listsize)
{
newbase=(int*)realloc(L.elem,(L.listsize+LIST_INCREMENT)*sizeof(int));
if(!newbase)
exit(OVERFLOW);
L.elem=newbase;
L.listsize+=LIST_INCREMENT;
}
q=L.elem+i-1;
for(p=L.elem+L.length-1; p>=q; --p)
*(p+1)=*p;
*q=e;
++L.length;
return OK;
}
void CreateList(SqList &L,int len)
{
int i;
for(i=1; i<=len; i++)
{
ListInsert(L,i,rand()%100);
}
}
void CreateList_C(SqList La,SqList Lb,SqList &Lc)
{
int i,j;
if(Lc.listsize<=La.length+Lb.length)
{
Lc.listsize+=La.length+Lb.length;
}
for(i=0,j=1; j<=La.length+Lb.length && i<La.length && i<Lb.length; i++)
{
ListInsert(Lc,j,La.elem[i]);
ListInsert(Lc,j+1,Lb.elem[i]);
j+=2;
}
if(La.length<Lb.length)
{
for(; i<Lb.length; i++,j++)
{
ListInsert(Lc,j,Lb.elem[i]);
}
}
else
{
for(; i<La.length; i++,j++)
{
ListInsert(Lc,j,La.elem[i]);
}
}
}
void ListTraverse(SqList L,void(*vist)(int&))
{
int *p=L.elem;
int i;
for(i=1; i<=L.length; i++)
{
vist(*p++);
}
printf("\n");
}
void print1(int &c)
{
printf("%d ",c);
}
int main()
{
SqList La,Lb,Lc;
InitList(La);
InitList(Lb);
InitList(Lc);
int La_len,Lb_len;
printf("input length of La: ");
scanf("%d",&La_len);
printf("input length of Lb: ");
scanf("%d",&Lb_len);
CreateList(La,La_len);
CreateList(Lb,Lb_len);
printf("List a: ");
ListTraverse(La,print1);
printf("List b: ");
ListTraverse(Lb,print1);
CreateList_C(La,Lb,Lc);
printf("List c: ");
ListTraverse(Lc,print1);
}
线性表--算法设计题2.23相关推荐
- 线性表--算法设计题2.29
已知A,B和C为三个递增有序的线性表,现要求对A表作如下操作:删去那些既在B表中出现又在C表中出现的元素.试对顺序表编写实现上述操作的算法.(注意:题中没有特别指明同一表中的元素值各不相同). C c ...
- 线性表--算法设计题2.25
假设以两个元素依值递增有序排列的线性表A和B分别表示两个集合(即同一表中的元素值各不相同),现要求另辟空间构成一个线性表C,其元素为A和B中元素的交集,且表C中的元素有依值递增有序排列.试对顺序表编写 ...
- 线性表应用之线性表算法设计六大经典案例
目录: 1.顺序有序表的合并 重复式合并 不重复式合并 2.链式有序表的合并 重复式合并 不重复式合并 3.链式有序表的反序合并 4.两 ...
- 算法设计题3.16-栈和队列-第3章-《数据结构习题集》-严蔚敏吴伟民版
习题集完整源码部分 第3章 栈和队列 ...
- 算法设计题3.27-栈和队列-第3章-《数据结构习题集》-严蔚敏吴伟民版
习题集完整源码部分 第3章 栈和队列 ...
- c语言数据结构算法设计题,数据结构题集(C语言版)算法设计题答案[].doc
数据结构题集(C语言版)算法设计题答案[].doc 第一章 绪论 1.16 void print_descending(int x,int y,int z)// 按从大到小顺序输出三个数 { scan ...
- 线性表算法题库_数据结构与算法(线性表)练习题
.word 资料 . 三.写一个算法合并两个已排序的线性表. (用两种方法:数组表示的线性表(顺序表)和 指针表示的线性表(链表) ) 要求: 1 .定义线性表节点的结构,并定义节点的型和位置的型. ...
- pta数据结构-线性表(判断题和选择题)
数据结构 判断题 选择题 ##这是博主小白做过的一些pta题,分 判断题和 选择题 判断题 1-1 对于顺序存储的长度为N的线性表,访问结点和增加结点的时间复杂度分别对应为O(1)和O(N). 答案: ...
- 数据结构算法设计题 (超详细)
整理日期:2022-12-08 目录 一.线性表 二.栈和队列 三.数组和广义表 四.树和二叉树 五.图 六.查找算法 七.排序算法 一.线性表 (1)将两个递增的有序链表合并为一个递增的有序链表.要 ...
最新文章
- 使用现场总线更快更远
- 这样规范写代码,同事直呼“666”
- 【OpenCV 4开发详解】轮廓面积与长度
- python自动测试u_自动化测试——Selenium+Python之下拉菜单的定位
- JAX-RS 2.0:服务器端处理管道
- MobaXterm 错行,乱码
- (14)css—伪类选择器
- 6_机器翻译与Seq2Seq模型
- java面试题jvm_经典面试题|讲一讲JVM的组成
- nodejs mysql数据推送_使用Nodejs实现实时推送MySQL数据库最新信息到客户端
- 获取context path或者basePath
- PuTTY 'modmul()' 函数缓冲区下溢漏洞(CVE-2013-4206)
- XMind 8 Update 7 激活
- 关于Linux中网络连接配置(NetworkManager)的一些笔记
- Geek Challenge
- python 简单操作dbpedia
- 计算机主机检测不到耳机,win10电脑检测不到耳机怎么办_win10电脑检测不到耳机如何解决-系统城...
- PortSwigger Academy | Authentication : 身份认证
- 简述java程序的工作过程_简述 Java 程序的开发过程。_学小易找答案
- Java -- 用文本文档写代码
热门文章
- appium python 抓包_Python学习教程:另辟蹊径,appium抓取app应用数据了解一下
- 什么不用 iframe 做微前端
- promise A+ 原理
- php写cms,浅谈thinkPHP,国内写CMS利用率最高的框架
- cvsaveimage 异常_C++ IplImage*的若干bug之三:cvSaveImage問題
- 解决 GiWiFi 普通用户无客户端无法登入
- CSS 总结我对3D效果的一些误解
- 韩顺平mysql优化笔记_韩顺平 mysql优化笔记.doc
- oppo手机android是多,OPPO手机卡屏?教你三招轻松解决卡顿问题,大部分安卓都适用...
- 运算放大器基本公式_跨阻放大器稳定性