线性表--算法设计题2.29
C code:
#include<stdlib.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,t;
printf("Please input elems: ");
for(i=1; i<=len; i++)
{
scanf("%d",&t);
ListInsert(L,i,t);
}
}
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 cmp(const void *a,const void *b)
{
return *(int*)a - *(int*)b;
}
void ListSort(SqList &L)
{
qsort(L.elem,L.length,sizeof(int),cmp);
}
void ListCross(SqList La,SqList Lb,SqList &Lc)
{
int i=0,j=0,k=1;
while(i<La.length && j<Lb.length)
{
if(La.elem[i]<Lb.elem[j])
i++;
else
{
if(La.elem[i]>Lb.elem[j])
j++;
else
{
ListInsert(Lc,k,La.elem[i]);
i++;
k++;
}
}
}
}
void ListMinus(SqList La,SqList Lb,SqList &Lc)
{
int i=0,j=0,k=1;
while(i<La.length && j<Lb.length)
{
if(La.elem[i]<Lb.elem[j])
{
ListInsert(Lc,k,La.elem[i]);
i++;
k++;
}
else
{
if(La.elem[i]>Lb.elem[j])
{
j++;
}
else
{
i++;
j++;
}
}
}
}
int main()
{
SqList La,Lb,temp,Lc,Ld;
InitList(La);
InitList(Lb);
InitList(Lc);
InitList(Ld);
InitList(temp);
int La_len,Lb_len,Lc_len;
printf("input length of La: ");
scanf("%d",&La_len);
printf("input length of Lb: ");
scanf("%d",&Lb_len);
printf("input length of Lc: ");
scanf("%d",&Lc_len);
CreateList(La,La_len);
CreateList(Lb,Lb_len);
CreateList(Lc,Lc_len);
printf("List a: ");
ListTraverse(La,print1);
printf("List b: ");
ListTraverse(Lb,print1);
printf("List c: ");
ListTraverse(Lc,print1);
printf("After sorting List a: ");
ListSort(La);
ListTraverse(La,print1);
printf("After sorting List b: ");
ListSort(Lb);
ListTraverse(Lb,print1);
printf("After sorting List c: ");
ListSort(Lc);
ListTraverse(Lc,print1);
ListCross(Lb,Lc,temp);
ListSort(temp);
printf("temp List: ");
ListTraverse(temp,print1);
ListMinus(La,temp,Ld);
ListSort(Ld);
printf("List d: ");
ListTraverse(Ld,print1);
return 0;
}
转载于:https://www.cnblogs.com/iwuyudong/archive/2011/05/03/2234051.html
线性表--算法设计题2.29相关推荐
- 线性表--算法设计题2.23
设线性表A=(a1,a2--,am),B=(b1,b2--,bn),试写一个按下列规则合并A,B为线性表C的算法,即使得 C=(a1,b1,--am,bm,--bn) 当m<=n时: C=(a ...
- 线性表--算法设计题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)将两个递增的有序链表合并为一个递增的有序链表.要 ...
最新文章
- 用C语言扩展PHP功能
- php redis set集合操作,php对redis的set(集合)操作
- win10下gnuplot的安装和使用
- 【深度学习】深入浅出CRF as RNN(以RNN形式做CRF后处理)
- 重磅推荐《南瓜书》:周志华《机器学习》的代码实现
- python顺序结构实验设计_实验二 顺序结构程序设计(验证性实验)
- fckeditor 漏洞php,fckeditor上传漏洞利用总结
- python 新闻摘要_每日新闻摘要:Microsoft内部禁止应用程序,这样就可以了
- python中类的构成_Python中类型关系和继承关系实例详解
- Spark系列-SparkSQL实战
- Atitit 文件上传功能的实现 图片 视频 目录 1. 上传原理	1 1.1. http post编码 multipart / form-data	1 1.2. 临时文件模式 最简单	2 1.3
- 【收藏推荐】Markdown常用LaTeX数学符号公式
- Mysql8.x主从基础同步
- PPT怎么修改母版背景
- 【计蒜客 A1594 --- 封印之门】floyd
- html职业性格测试,MBTI职业性格测试专业版
- PS制作 LOGO图片
- 达梦数据库忘记SYSDBA密码的问题探讨
- Django入门 | 官方文档带你快速入门
- 【项目设计】基于OneNet平台的心率监测系统 -嵌入式 -物联网
热门文章
- html流式布局插件,Jquery瀑布流网格布局插件
- windows副本不是正版怎么办_盗版系统总是崩溃?别着急,让我来告诉你正版系统怎么下载...
- PCM复用设备和PDH设备的区别介绍
- 【渝粤教育】国家开放大学2019年春季 1062文学英语赏析 参考试题
- 【渝粤教育】国家开放大学2018年秋季 0707-21T办公室实务 参考试题
- 【渝粤题库】陕西师范大学201381 国际经济法作业
- 【渝粤题库】广东开放大学 商务交际听说 形成性考核
- 【渝粤题库】国家开放大学2021春1080工程数学(本)题目
- 删除linux 软raid0,配置Linux软RAID0
- spss非线性回归分析步骤_SPSS与简单线性回归分析