精华内容
下载资源
问答
  • 实验 二 基于链式存储结构 实现线性表的基本的 常见的运算 提示: ⑴ 提供一个实现功能的演示系统 ⑵ 具体物理结构和数据元素类型自行选定 ⑶ 线性表数据可以使用磁盘文件永久保存
  • 定义一个包含图书信息(书号、书名、价格)的顺序表,读入相应的图书数据完成图书信息表的创建,然后将图书按照价格降序排序,逐行输出排序后每本图书的信息。 输入描述 输入n+1 行,前n 行是n 本图书的信息(书号、...

    题目描述
    定义一个包含图书信息(书号、书名、价格)的顺序表,读入相应的图书数据完成图书信息表的创建,然后将图书按照价格降序排序,逐行输出排序后每本图书的信息。
    输入描述
    输入n+1 行,前n 行是n 本图书的信息(书号、书名、价格),每本图书信息占一行,书号、书名、价格用空格分隔,价格之后没有空格。最后第n+1 行是输入结束标志:0 0 0(空格分隔的三个0)。其中书号和书名为字符串类型,价格为浮点数类型。
    输出描述
    总计n 行,每行是一本图书的信息(书号、书名、价格),书号、书名、价格用空格分隔。其中价格输出保留两位小数。
    样例输入
    9787302257646 程序设计基础 25.00
    9787302164340 程序设计基础(第2版) 20.00
    9787302219972 单片机技术及应用 32.00
    9787302203513 单片机原理与应用技术 26.00
    9787810827430 工业计算机控制技术——原理与应用 29.00
    9787811234923 汇编语言程序设计教程 21.00
    0 0 0
    样例输出
    9787302219972 单片机技术及应用 32.00
    9787810827430 工业计算机控制技术——原理与应用 29.00
    9787302203513 单片机原理与应用技术 26.00
    9787302257646 程序设计基础 25.00
    9787811234923 汇编语言程序设计教程 21.00
    9787302164340 程序设计基础(第2版) 20.00

    #include <iostream>
    #include<string.h>
    #include<stdlib.h>
    #include<stdio.h>
    
    #define OK 1
    #define Maxsize 100
    #define OVERFLOW -2
    
    using namespace std;
    typedef int Status;                 //声明类型int类型为Status
    typedef struct
    {
       char no[20];                     //图书ISBN
       char name[50];                   //图书名字
       float price;                     //图书价格
    }Book;
    typedef struct
    {
     Book  *elem;//指向数据元素的基地址
     int length;//线性表的当前长度
    }SqList;       //他的顺序存储结构类型为SqList
    int main()
    {
        Status InitList(SqList &L);  //声明函数
        Status PrintList_Sq(SqList &L); //声明函数
        Status CreationList_Sq(SqList &L,char *no,char *name,float &price);//声明函数
        SqList L;                       //定义L为SqList
        InitList(L);                    //初始化L
        char no[20],name[50];           //定义no,name为char数组
        float price;                    //定义price为float
        int i=0;
        while(1)     //输入no、name、price
        {
            cin>>no>>name>>price;
            if(*no=='0'&&*name=='0'&&price==0){break;}
            CreationList_Sq(L,no,name,price);//存入书信息
            ++i;
        }
        PrintList_Sq(L);
      return 0;
    }
    Status InitList(SqList &L)
    {
       L.elem=new Book[Maxsize];   //为顺序表分配存储空间
       if(!L.elem) exit(OVERFLOW);   //存储分配失败
       L.length=0;         //空表长度为0
       return OK;
    }
    Status CreationList_Sq(SqList &L,char *no,char *name,float &price)
    {
        Book B;                     //定义B为Book
        strcpy(B.no,no);            //复制书号
        strcpy(B.name,name);
        B.price=price;
        L.elem[L.length]=B;         //l的elem数组存储书的信息
        L.length++;                 //每存好一本书,书总量自加1,l.length=l.length+1.单目运算
        return OK;                      //OK=1,返回真
    }
    Status PrintList_Sq(SqList &L)
    {
        int n=L.length;
        for(int i=1;i<=n;i++)
        {
            for(int j=0;j<=n-i;j++)
            {
            if(L.elem[j].price<=L.elem[j+1].price)
            {
                    Book B=L.elem[j];   //定义B为Book类型,用于暂时存书价格小的书的信息
                    L.elem[j]=L.elem[j+1];//书架底的在后面
                    L.elem[j+1]=B;      //后面的书从B里取回书价小的信息
            }
            }
        }
        for(int i=0;i<L.length;i++)     //顺序输出每本书的信息
        {
            cout<<L.elem[i].no<<" "<<L.elem[i].name<<" ";//每本书信息
            printf("%.2f\n",L.elem[i].price);//保留两位消暑
        }
        return OK;                      //OK=1,返回真
    }
    
    
    展开全文
  • 1.基于顺序存储结构的图书信息表的创建和输出 问题描述 定义一个包含图书信息(书号、书名、价格)的顺序表,读入相应的图书数据来完成图书信息表的创建。然后,统计图书表中的图书个数,同时逐行输出每本图书的信息 ...

     

    1.基于顺序存储结构的图书信息表的创建和输出
    问题描述
    定义一个包含图书信息(书号、书名、价格)的顺序表,读入相应的图书数据来完成图书信息表的创建。然后,统计图书表中的图书个数,同时逐行输出每本图书的信息

     

    输入要求
    输入n+1行,其中前n行是n本图书的信息(书号、书名、价格),每本图书信息占一行,书号、书名、价格用空格分隔,价格之后没有空格。最后第n+1行是输入结束标志:0 0 0(空格分隔的三个0)。其中,书号和书名为字符串类型,价格为浮点数类型。

    输出要求
    总计n+1行,第1行是所创建的图书信息表中的图书个数,后n行是n本图书的信息(书号、书名、价格),每本图书信息占一行,书号、书名、价格用空格分隔。其中,价格输出保留两位小数。

     

    #include<stdio.h>
    #include<string.h>
    #include<malloc.h> 
    #include<stdlib.h>
    #define MAXSIZE 10000//图书表可能达到的最大长度 
    #define OK 1
    #define ERROR 0
    #define OVERFLOW -2
    
    typedef int Status;
    
    typedef struct //图书信息定义 
    {
    	char  no[20];//图书ISBN 
    	char  name[50];//图书名字 
    	float price;//图书价格 
     }Book;
    
    typedef struct 
    {
    	Book *elem;//存储空间的基地址 
    	int  length;//图书表中当前图书个数 
    }SqList;//图书表的顺序存储结构类型为SqList
    
    typedef struct LNode
    {
    	Book data;//结点的数据域 
    	struct LNode *next;//结点的指针域 
    }LNode,*LinkList;//LinkList为指向结构体LNode的指针类型 
    
    
    Status InitList_Sq(SqList &L)//构造一个空的顺序表 
    {
    	L.elem=(Book * )malloc(MAXSIZE * sizeof(Book));//为顺序表分配一个大小为MAXSIZE的数组空间 
    	if(!L.elem) exit(OVERFLOW);//存储失败 
    	L.length=0;//空表长度为零 
    	return OK; 
    }
    
    Status PrintList_Sq(SqList &L)
    {
        printf("%d\n",L.length);           //书本总数
        for(int i=0;i<L.length;i++)     //顺序输出每本书的信息
        {
            printf("%s %s %.2f\n", L.elem[i].no,L.elem[i].name,L.elem[i].price);//每本书信息
           // printf("%.2f\n",L.elem[i].price);//保留两位小数
        }
        return OK;                      //OK=1,返回真
    }
    
    Status CreationList_Sq(SqList &L,char *no,char *name,float price)
    {
        char * strcpy(char * strDest,const char * strSrc);
    	Book B;                    //定义B为Book
        strcpy(B.no,no);       //复制书号
        strcpy(B.name,name);
        B.price=price;
        L.elem[L.length]=B;         //l的elem数组存储书的信息
        L.length++;                 //每存好一本书,书总量自加1,l.length=l.length+1.单目运算
        return OK;                      //OK=1,返回真
    }
    
    int main()
    {
    
    	char no[20],name[50];          
        float price; 
        SqList L;                       //定义L为SqList
        InitList_Sq(L);                 //初始化L
    	while(~scanf("%s %s %f",no,name,&price))
    	{
    		if(!strcmp(no,"0")&&!strcmp(name,"0")&&price==0.0)
                break;      	           
            CreationList_Sq(L,no,name,price);                    
       }
        PrintList_Sq(L);                
        return 0;  
    }

     

     

     

    展开全文
  • 1、基本概念 数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。 包含有整型、实型等数值类型;...数据结构:是相互之间存在一种或多种特定关系的数...

    1、基本概念

    数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。

    包含有整型、实型等数值类型;字符类型(声音、图像、视频等都可以通过编码手段变成字符类型)

     

    数据元素(人):组成数据的、有一定意义的基本单位;

     

    数据项(眼耳鼻姓名地址等):一个数据元素可以由若干个数据项组成。

     

    数据结构:是相互之间存在一种或多种特定关系的数据元素的集合

     

    数据结构分类(以不同的视角分类):

          逻辑结构(面向问题):集合结构、线性结构、树形结构、图形结构

          物理结构(存储结构、面向计算机): 顺序存储结构,链式存储结构。

        举例:线性表既可以是顺序存储结构(一维数组)也可以是链式存储结构。

     

    数据类型:一组数据相同的值的集合,及定义在此集合上的 一些操作数的总称;集合+操作数。

         举例买房子:别墅,高层,单间,甚至胶囊房。

     

    2、总览图

    3、关于数据结构

    数据结构定义:数据结构是相互之间存在一种或多种特定关系的数据元素的集合。

    数据结构从不同角度来讨论有不同的分类:

     

    线性结构:线性表,栈,队列,双队列,数组,串。

    非线性结构:二维数组,多维数组,广义表,树(二叉树等),图,广义表(线性表的推广)

     

    特征(一对一,互相对应):

    1.集合中必存在唯一的一个"第一个元素";

    2.集合中必存在唯一的一个"最后的元素";

    3.除最后元素之外,其它数据元素均有唯一的"后继";

    4.除第一元素之外,其它数据元素均有唯一的"前驱"。

     

    展开全文
  • 顺序存储结构和链式存储结构的优缺点比较

    万次阅读 多人点赞 2018-10-09 17:45:34
    顺序存储结构和链式存储结构的比较 优缺点 顺序存储时,相邻数据元素的存放地址也相邻(逻辑与物理统一);要求内存中可用存储单元的地址必须是连续的。 优点:存储密度大(=1),存储空间利用率高。 缺点:...

    顺序存储结构和链式存储结构的比较

    优缺点

    1. 顺序存储时,相邻数据元素的存放地址也相邻(逻辑与物理统一);要求内存中可用存储单元的地址必须是连续的。
      • 优点:存储密度大(=1),存储空间利用率高。
      • 缺点:插入或删除元素时不方便。
    2. 链式存储时,相邻数据元素可随意存放,但所占存储空间分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针
      • 优点:插入或删除元素时很方便,使用灵活。
      • 缺点:存储密度小(<1),存储空间利用率低。

    使用情况

    • 顺序表适宜于做查找这样的静态操作;
    • 链表宜于做插入、删除这样的动态操作。
    • 若线性表的长度变化不大,且其主要操作是查找,则采用顺序表;
    • 若线性表的长度变化较大,且其主要操作是插入、删除操作,则采用链表。

    比较

    顺序表与链表的比较

    • 基于空间的比较

      • 存储分配的方式
        • 顺序表的存储空间是静态分配的
        • 链表的存储空间是动态分配的
      • 存储密度 = 结点数据本身所占的存储量/结点结构所占的存储总量
        • 顺序表的存储密度 = 1
        • 链表的存储密度 < 1
    • 基于时间的比较

      • 存取方式
        • 顺序表可以随机存取,也可以顺序存取
        • 链表是顺序存取的
      • 插入/删除时移动元素个数
        • 顺序表平均需要移动近一半元素
        • 链表不需要移动元素,只需要修改指针

     

    内容转载自:https://blog.csdn.net/VonSdite/article/details/78240594?locationNum=9&fps=1

    展开全文
  • 线性表的顺序存储结构

    千次阅读 2020-04-23 10:42:39
    线性表的顺序存储结构2.1 顺序存储定义2.2 顺序存储结构常用操作2.2.1 顺序表初始化2.2.2 顺序表插入与删除2.2.3 顺序表其他操作2.3 线性表顺序存储结构的优缺点 1. 线性表的定义 线性表:零个或者多个数据元素的...
  • 【数据结构顺序存储——定义

    千次阅读 热门讨论 2017-10-13 21:31:39
    小编最近一段时间在学习数据结构顺序存储和链式存储的代码部分,发现有很多规律,在此做一个小结。
  • 线性表之顺序存储结构和链式存储结构

    万次阅读 多人点赞 2018-09-28 14:17:06
    顺序存储结构和链式存储结构有所不同,具体区别如下表所示: 通过上面的对比,可以得出一些经验性的结论: 若线性表需要频繁查找,很少进行插入和删除操作时,宜采用顺序存储结构。若需要频繁插入和删除时,宜...
  • 线性表的顺序存储结构及实现

    千次阅读 2020-11-21 01:21:21
    线性表的顺序存储结构定义 线性表的介绍 线性表的顺序存储称为顺序表(sequential list),其基本思zhunc想是用一段地址连续存储单元的存循单元依次存储线性表的数据元素,则第,如图1所示。设顺序表的每个元素占用c...
  • printf("****************二叉树的顺序存储结构练习******************\n"); printf("1:初始化二叉树\n"); printf("2:销毁二叉树\n"); printf("3:创建二叉树\n"); printf("4:清空二叉树\n"); printf("5:...
  • C语言实现顺序表(顺序存储结构

    千次阅读 2020-01-13 16:48:04
    顺序表(顺序存储结构)及初始化过程详解 顺序表,全名顺序存储结构,是线性表的一种。通过《线性表》一节的学习我们知道,线性表用于存储逻辑关系为“一对一”的数据,顺序表自然也不例外。 不仅如此,顺序表对...
  • 线性表在顺序存储结构下的基本操作: 源代码: #include <stdio.h> #include <malloc.h> #include <process.h> #define OK 1 #define ERROR 0 #define OVERFLOW -1 #define maxsize ...
  • } } } 三、线性表的顺序存储结构 引入: 线性表由两种物理存储结构:顺序存储结构和链式存储结构。在此介绍顺序存储结构顺序存储结构 是指用一段地址连续的存储单元依次存储线性表的数据元素。例如:数组。 ...
  • 栈的顺序存储结构和链式存储结构

    千次阅读 2018-10-10 08:15:09
    1.栈的定义: ...栈:后进先出(last in first out)的线性表,简称LIFO结构。 栈的插入称为进栈,也称压栈,入栈。 栈的删除称为出栈,也称弹栈。 2.栈的抽象数据结构  因为栈本身就是一个...
  • 线性表的顺序存储结构是把线性表中的元素中的元素按照其逻辑顺序依次存储到计算机存储器中指定位置开始的一块连续的存储空间中,它直接将线性表的逻辑结构映射到存储结构上,既方便理解,又容易实现。 ...
  • 队列的顺序存储结构

    千次阅读 2018-05-05 16:11:55
    队列的顺序存储结构:要预先分配内存,知道队列的最大长度。初始化队列时Q.rear=Q.front=0;对尾插入队列元素rear+1,对头删除队列元素front+1,假设当前为队列分配的最大空间为6,则当队列处于图(d)时,再插入元素...
  • 2.熟练掌握线性表的顺序存储结构的定义及其基本操作的C 语言实现。 3.掌握顺序表的应用,逐步培养解决实际问题的能力。 4.熟练掌握C语言中指针、结构体与数组的知识,为以后的各个实验做准备。 二、实验内容 1.(必...
  • 二叉树的顺序存储结构

    万次阅读 多人点赞 2019-06-08 18:58:44
    下面来完成二叉树的顺序存储(一帮用于完全二叉树 避免内存浪费) 在顺序存储中如上图所示完成树的存储 #include<stdio.h> #include<conio.h> #define MAX_SIZE 1024 //定义顺序树类型 typedef....
  • 线性表的顺序存储结构及基本操作

    千次阅读 2018-10-03 22:16:36
    学习书籍《大话数据结构》,自学完后,总结一下,以后也好复习 ,欢迎互相交流。 线性表的基本操作功能如下: InitList(*L): 初始化操作,建立一个空的线性表L ListEmpty(L): 若线性表为空,返回true,否则返回...
  • 在C/C++语言中,借助数组类型来实现顺序表,也就是说,用数组存放线性表的元素及其逻辑关系,数组的基本类型就是线性表中元素的的类型,数组大小(即数组上界-下界+1)要大于等于线性表的长度,否则该数组不能存放...
  • 线性表及顺序存储结构 元素获取、插入、删除的实现 算法时间复杂度的分析 一、线性表及顺序存储结构  线性表即有限个数据元素的序列,而其顺序存储结构则指的是用一段地址连续的存储单元依次存储线性表中的...
  • #include <stream> using namespace std; typedef int ElemType;// 自定义了一个数据类型Elemtype,这里定义的Elemtype和int型是一样的 ...typedef struct//typedef是定义类型的意思, ...//存储空间的基地址 ...
  • 线性表之顺序存储和链式存储结构

    千次阅读 2020-11-27 11:36:34
    线性表有两种物理存储结构:顺序存储结构和链式存储结构 线性表插入操作 插入算法的思路: 1、如果插入位置不合理,抛出异常 2、如果线性表长度大于等于数组长度,则抛出异常或动态增加数组容量 3、从最后一个元素...
  • 顺序存储结构存储结构类型中的一种,该结构是把逻辑上相邻的结点存储在物理位置上相邻的存储单元中,结点之间的逻辑关系由存储单元的邻接关系来体现。 实现顺序存储结构的方法是使用数组。数组把线性表的数据元素...
  • 树的顺序存储结构

    千次阅读 2019-01-25 17:20:05
     用一组连续的存储空间存储树的结点,同时再每个结点中,用一个变量存储该结点的双亲结点在数组中的位置 #define MaxSize 50 typedef int Elemtype; typedef struct TNode { Elemtype data; //结点数据 int ...
  • 顺序存储结构和链式存储结构的比较优缺点顺序存储时,相邻数据元素的存放地址也相邻(逻辑与物理统一);要求内存中可用存储单元的地址必须是连续的。 优点:存储密度大(=1),存储空间利用率高。缺点:插入或...
  • 顺序存储结构和链式存储结构的优缺点

    万次阅读 多人点赞 2017-10-08 09:21:35
    顺序存储结构和链式存储结构的优缺点 数据在计算机内有链式和顺序两种存储方式,在存储空间使用的灵活性上, 链式存储比顺序存储要高。 (一)顺序存储结构和链式存储结构的优缺点比较,以及使用情况。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 525,844
精华内容 210,337
关键字:

顺序存储结构类型