数据结构中三表合一的实现
任务描述:La表的数据(3,5,8,11) Lb表的数据是(2,6,8,9,11,15,20)将La中的数据和Lb的数据按顺序依次插入到Lc中 但是要为Lc至少初始化一个数据 否则就插不进去 不知道怎么改 而且display()还是返回状态结果。
#include <iostream>
//包含文件
using namespace std;#define LIST_INIT_SIZE 100
//初始化分配量#define LISTINCREMENT 10
//存储空间的分配增量typedef int status;
//存储结构的类型定义 返回函数的状态结果代码
typedef int ElemType;
//数据元素/結点的表示 这个是用户自定义的数据类型 用于结点
typedef struct{ElemType *elem;//结点的储存空间首地址int length;//当前长度int listsize;//当前的分配的存储容量 (以sizeof (ElemType)为单位)
}IntNode; //相当于在java中定义了一个叫IntNode的结点类status IntList(IntNode &L)
{//这个函数实现的是构建一个空线性表 在这之前我们要为其分配100个ElemType大小的L.elem = (ElemType *)malloc(LIST_INIT_SIZE * sizeof(ElemType));//分配100个ElemType大小的存储空间,并把地址分配给指向ElemType的指针elemif(!L.elem)exit(0);//如果没有分配成功 那么存储失败L.length = 0;//长度为0L.listsize = LIST_INIT_SIZE;//初始容量是100return true;}status InsertList(IntNode &L,int n)
{cout<<"请输入数据"<<endl;for(int i =0;i<n;i++){cin>>L.elem[i];++L.length;if(L.length>=L.listsize){ElemType * newbase;newbase = (ElemType *)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(ElemType));if(!newbase)exit(0);L.elem= newbase;L.length+=LISTINCREMENT;//这段代码的意思是 当线性表的长度小于最大分配的空间时 //你就要重新分配出110的分配空间 并将指针赋给newbase}}return true;}status ListLength(IntNode &L)
{int answer;for(int i =0;i<L.length;i++){answer++;}return L.length;
}status ListInsert(IntNode &L,int i,ElemType e)
{//在i的位置之前插入e元素 并使L的长度增加
//有了前置条件 i必须是不超出线性表范围的 1<=i<=L.length+1if(i>L.length||i<0)return false;if(L.length>=L.listsize){ElemType * newbase;newbase = (ElemType *)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(ElemType));if(!newbase)exit(0);L.elem= newbase;L.length+=LISTINCREMENT;//这段代码的意思是 当线性表的长度小于最大分配的空间时 //你就要重新分配出110的分配空间 并将指针赋给newbase}ElemType *p =&(L.elem[i-1]);//指定的位置for(ElemType *q = &(L.elem[L.length-1]);q>=p;--q){*(q+1)=*(q);//插入位置及之后的元素右移}*p =e;++L.length;return true;}status GetElem(IntNode &L,int i) {ElemType *p = & (L.elem[i-1]);ElemType e = *p;return e;}status LocateElem(IntNode &L,ElemType e)
{ElemType *p =&(L.elem[0]);//首位置for(ElemType *q = &(L.elem[L.length-1]);p<=q;p++){if(e==*p)return true;}return false;
}status display(IntNode &L,int n){for ( int i = 0; i <=n ; i ++){cout << L.elem[i]<< " ";}return true;}int main(){IntNode La;IntNode Lb;IntNode Lc;IntList(La);IntList(Lb);IntList(Lc);InsertList(Lc,1);InsertList(La,4);InsertList(Lb,7);int i =1;int j =1;int k =0;ElemType e = GetElem(La,1);while(i<=La.length&&j<=Lb.length){ElemType e1 = GetElem(La,i);ElemType e2 = GetElem(Lb,j);if(e1<=e2){ListInsert(Lc,++k,e1);++i;}else{ListInsert(Lc,++k,e2);++j;}}while(i<=La.length){ElemType e3 = GetElem(La,i++);ListInsert(Lc,++k,e3);}while(j<=Lb.length){ElemType e4 = GetElem(Lb,j++);ListInsert(Lc,++k,e4);}cout<<display(Lc,11)<<endl;cout<<endl;return 0;}
数据结构中三表合一的实现相关推荐
- 数据结构中等号表示什么_通过分析2016年最重要的252个中等故事我学到了什么...
数据结构中等号表示什么 Medium may be struggling to find a sustainable business model, but they have years worth ...
- 图解:数据结构中的6种「树」,柠檬问你心中有数吗?
数据结构这门课程是计算机相关专业的基础课,数据结构指的是数据在计算机中的存储.组织方式. 我们在学习数据结构时候,会遇到各种各样的基础数据结构,比如堆栈.队列.数组.链表.树...这些基本的数据结构类 ...
- 数据结构中常见的树(BST二叉搜索树、AVL平衡二叉树、RBT红黑树、B-树、B+树、B*树)
原文:http://blog.csdn.net/sup_heaven/article/details/39313731 数据结构中常见的树(BST二叉搜索树.AVL平衡二叉树.RBT红黑树.B-树.B ...
- gsoap中的数据结构中不允许有野指针
2019独角兽企业重金招聘Python工程师标准>>> gsoap中的数据结构中不允许有野指针,比如char *p,没有给它赋值,就必须要给其赋值为NULL. 转载于:https:/ ...
- 数据结构——数据结构中的数据表示
1,本文介绍数据的概念,以便讨论数据结构究竟是什么: 2,程序设计的挑战: 1,利用计算机解决现实生活中的问题: 1,计算机顾名思义是其诞生的时候仅仅是给科学家使用,科学家用计算机进行计算: 2,这是 ...
- c语言折半查找递归程序,C语言数据结构中二分查找递归非递归实现并分析
C语言数据结构中二分查找递归非递归实现并分析 前言: 二分查找在有序数列的查找过程中算法复杂度低,并且效率很高.因此较为受我们追捧.其实二分查找算法,是一个很经典的算法.但是呢,又容易写错.因为总是考 ...
- [数据结构]数据结构中各种树
阅读目录 1. 二叉树 2. 二叉查找树 3. 平衡二叉树 3.1 平衡查找树之AVL树 3.2 平衡二叉树之红黑树 4. B树 5. B+树 6. B*树 7. Trie树 数据结构中有很多树的结构 ...
- 初始化栈的代码_数据结构中的栈,你知道多少?
由于栈比较简单,也很容易理解,学过的人都知道一句话就可以描述栈的特性:后进先出.所以这篇文章主要是写如何使用代码来描述栈,当然也是让大家很容易理解的语言.还是先给出这篇文章的大致脉络. 首先,对栈有一 ...
- 数据结构中的各种排序---总结篇
转载:http://blog.csdn.net/wzyhb123456789/article/details/5974790 一个月没有写文章,原因是一直在忙碌着,但是其实是有收获的,下面就是我这前半 ...
最新文章
- Runtime编译环境搭建
- java orm 工具_GitHub - donnie4w/jdao: jdao是一个java的轻量级orm工具包
- 人月神话阅读笔记02
- poj1018 Communication System (有道翻译完全拯救不了)
- Ubuntu安装wps Linux版
- 详述switch分支语句
- Django中自定义过滤器的使用
- angularJs跨域
- [BZOJ4027][HEOI2015]兔子与樱花(贪心)
- PDH光端机的作用及其特点
- sr锁存器 数电_C06. SR锁存器的认识
- openwrt patch文件怎么用_openwrt 打补丁方式修改内核源码
- 2021-2025年中国云企业管理软件行业市场供需与战略研究报告
- ORACLE11g“空表”无法导出的深入分析
- 有向图生成树个数(bzoj 4894: 天赋)
- 《How to bake LightMap》
- 使用Python采集淘宝类目数据并进行数据分析
- 基于AD9361的ASK调制与解调
- MC下载Forge/Optifine不想有广告怎么办
- 服务器主板支持什么cpu,怎么看主板支持什么CPU(主板和cpu兼容搭配知识)
热门文章
- java aes mysql blob_使用带有ORDER子句的AES_DECRYPT在MySQL中返回BLOB数据
- java 字符查找 截断_java字符串常用操作(查找、截取、分割)
- 教你怎么获得ICM会员ID解析.xxx域名(membership id icm)
- 美国远程MBA全面占领MBA市场
- jQuery: 合并表格中相同文本的相邻单元格
- CSS: 深入理解BFC和Margin Collapse (margin叠加或者合并外边距)
- Unix系统的diff工具程序
- Shell编程:Bash引号的那点事
- 【转载】Python中collection.Counter的用法
- ubuntu 14.04 环境下打开xls、pdf与png文件