任务描述: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;}


数据结构中三表合一的实现相关推荐

  1. 数据结构中等号表示什么_通过分析2016年最重要的252个中等故事我学到了什么...

    数据结构中等号表示什么 Medium may be struggling to find a sustainable business model, but they have years worth ...

  2. 图解:数据结构中的6种「树」,柠檬问你心中有数吗?

    数据结构这门课程是计算机相关专业的基础课,数据结构指的是数据在计算机中的存储.组织方式. 我们在学习数据结构时候,会遇到各种各样的基础数据结构,比如堆栈.队列.数组.链表.树...这些基本的数据结构类 ...

  3. 数据结构中常见的树(BST二叉搜索树、AVL平衡二叉树、RBT红黑树、B-树、B+树、B*树)

    原文:http://blog.csdn.net/sup_heaven/article/details/39313731 数据结构中常见的树(BST二叉搜索树.AVL平衡二叉树.RBT红黑树.B-树.B ...

  4. gsoap中的数据结构中不允许有野指针

    2019独角兽企业重金招聘Python工程师标准>>> gsoap中的数据结构中不允许有野指针,比如char *p,没有给它赋值,就必须要给其赋值为NULL. 转载于:https:/ ...

  5. 数据结构——数据结构中的数据表示

    1,本文介绍数据的概念,以便讨论数据结构究竟是什么: 2,程序设计的挑战: 1,利用计算机解决现实生活中的问题: 1,计算机顾名思义是其诞生的时候仅仅是给科学家使用,科学家用计算机进行计算: 2,这是 ...

  6. c语言折半查找递归程序,C语言数据结构中二分查找递归非递归实现并分析

    C语言数据结构中二分查找递归非递归实现并分析 前言: 二分查找在有序数列的查找过程中算法复杂度低,并且效率很高.因此较为受我们追捧.其实二分查找算法,是一个很经典的算法.但是呢,又容易写错.因为总是考 ...

  7. [数据结构]数据结构中各种树

    阅读目录 1. 二叉树 2. 二叉查找树 3. 平衡二叉树 3.1 平衡查找树之AVL树 3.2 平衡二叉树之红黑树 4. B树 5. B+树 6. B*树 7. Trie树 数据结构中有很多树的结构 ...

  8. 初始化栈的代码_数据结构中的栈,你知道多少?

    由于栈比较简单,也很容易理解,学过的人都知道一句话就可以描述栈的特性:后进先出.所以这篇文章主要是写如何使用代码来描述栈,当然也是让大家很容易理解的语言.还是先给出这篇文章的大致脉络. 首先,对栈有一 ...

  9. 数据结构中的各种排序---总结篇

    转载:http://blog.csdn.net/wzyhb123456789/article/details/5974790 一个月没有写文章,原因是一直在忙碌着,但是其实是有收获的,下面就是我这前半 ...

最新文章

  1. Runtime编译环境搭建
  2. java orm 工具_GitHub - donnie4w/jdao: jdao是一个java的轻量级orm工具包
  3. 人月神话阅读笔记02
  4. poj1018 Communication System (有道翻译完全拯救不了)
  5. Ubuntu安装wps Linux版
  6. 详述switch分支语句
  7. Django中自定义过滤器的使用
  8. angularJs跨域
  9. [BZOJ4027][HEOI2015]兔子与樱花(贪心)
  10. PDH光端机的作用及其特点
  11. sr锁存器 数电_C06. SR锁存器的认识
  12. openwrt patch文件怎么用_openwrt 打补丁方式修改内核源码
  13. 2021-2025年中国云企业管理软件行业市场供需与战略研究报告
  14. ORACLE11g“空表”无法导出的深入分析
  15. 有向图生成树个数(bzoj 4894: 天赋)
  16. 《How to bake LightMap》
  17. 使用Python采集淘宝类目数据并进行数据分析
  18. 基于AD9361的ASK调制与解调
  19. MC下载Forge/Optifine不想有广告怎么办
  20. 服务器主板支持什么cpu,怎么看主板支持什么CPU(主板和cpu兼容搭配知识)

热门文章

  1. java aes mysql blob_使用带有ORDER子句的AES_DECRYPT在MySQL中返回BLOB数据
  2. java 字符查找 截断_java字符串常用操作(查找、截取、分割)
  3. 教你怎么获得ICM会员ID解析.xxx域名(membership id icm)
  4. 美国远程MBA全面占领MBA市场
  5. jQuery: 合并表格中相同文本的相邻单元格
  6. CSS: 深入理解BFC和Margin Collapse (margin叠加或者合并外边距)
  7. Unix系统的diff工具程序
  8. Shell编程:Bash引号的那点事
  9. 【转载】Python中collection.Counter的用法
  10. ubuntu 14.04 环境下打开xls、pdf与png文件