基于链式存储结构的图书信息表的创建和输出

这篇具有很好参考价值的文章主要介绍了基于链式存储结构的图书信息表的创建和输出。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

基于链式存储结构的图书信息表的创建和输出,链表,数据结构,c++

 #include<iostream>
#include<string.h>
#include<iomanip>
#define OK 1
#define ERROR 0
#define OVERFLOW -2
using namespace std;
typedef struct
{//图书信息定义
    char no[20];    //图书ISBN
    char name[50];   //图书名字
    float price;   //图书价格
}Book;
typedef struct LNode
{//图书信息表的链式存储结构
    Book data;           //结点的数据域
    int length;       //链表的表长,即图书表中图书个数
    struct LNode *next; //指针域
}LNode,*LinkList;
int InitList_L(LinkList &L)
{//构造一个空的单链表L
    L=new LNode;
    L->next=NULL;
    return OK;
}
int Input_L(LinkList &L)
{//链表的输入
    LinkList p=L;    //初始化p指向链表的头结点
    char no[20];
    char name[50];
    float price;
    while(cin>>no>>name>>price)
    {
        if(strcmp(no,"0")==0&&strcmp(name,"0")==0&&price==0)//输入结束标志
            break;
        else
        {//后插法创建单链表
            LinkList q=new LNode;       //生成新结点*q
            strcpy(q->data.no, no);      //将结点*q数据域的no部分置为no
            strcpy(q->data.name, name);  //将结点*q数据域的name部分置为name
            q->data.price=price;        //将结点*q数据域的price部分置为price
            q->next=NULL;               //尾指针置为NULL
            p->next=q;                 //将新结点*q插入尾结点*p之后
            p=q;                       //更新p,将p指向新的尾结点*q
        }
    }
    return OK;
}
int  Length_L(LinkList &L)
{//求链表的表长,即图书表中图书个数
    LinkList p=L;                 //初始化p指向链表的头结点
    L->length=0;                  //初始化链表的表长L->length为0
    while(p->next)                //下一个结点存在时
    {
        L->length++;              //链表的表长+1
        p=p->next;                //更新指针p,指向下一个结点
    }
    return OK;
}
int Output_L(LinkList L)
{//链表的输出
    LinkList p=L;
    cout<<p->length<<endl;    
    while(p->next)  //下一个结点存在时
    {
        cout<<p->next->data.no<<" "<<p->next->data.name<<" "<<fixed<<setprecision(2)<<p->next->data.price<<endl;
        p=p->next;   //更新指针p,指向下一个结点
    }
    return OK;
}
int main()
{
    LinkList L;                    //定义一个LinkList类型的变量L
    InitList_L(L);                //初始化一个空的链表L
    Input_L(L);                    //输入数据
    Length_L(L);                //先求链表L的表长L->length
    Output_L(L);                //输出链表
    return 0;
}文章来源地址https://www.toymoban.com/news/detail-734701.html

到了这里,关于基于链式存储结构的图书信息表的创建和输出的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Visual Studio 线性表的链式存储节点输出引发异常:读取访问权限冲突

    问题: 写了一个线性表的链式存储想要输出,能够输出,但是会报错:读取访问权限冲突 分析: 当我们输出到最后倒数第二个节点时,p指向倒数第二个节点并输出; 下一轮循环:p指向倒数第二个节点不为NULL,于是指向倒数第一个节点并输出; 下一轮循环:p指向倒数第一

    2024年02月09日
    浏览(37)
  • 数据结构-线性表的链式存储(包含代码实现)

    链式存储结构 结点在存储器中的位置是任意的,即逻辑上相邻的数据元素在物理上不一定相邻 线性表的链式存储结构又称为 非顺序映像 或 链式映像。 用一组 物理位置任意的存储单元 来存放线性表的数据元素 这组存储单元既可以是连续的,也可以是不连续的,甚至是零散

    2024年02月06日
    浏览(41)
  • 二叉树创建并输入输出(链式结构)

          要进行二叉树的创建以及输入输出首先我们都应该遍历到二叉树各个结点才能进行相应的操作,二叉树的遍历方法一共有3种:    1.前序遍历(先结点,再左子树,再右子树)      2.中序遍历(先左子树,再结点,再右子树)      3.后序遍历(先左子树,再右子树,

    2024年02月06日
    浏览(25)
  • 数据结构——二叉树的创建与遍历(链式存储结构)

    二叉树(binary tree)是指树中节点的度不大于2的有序树,它是一种最简单且最重要的树。二叉树的递归定义为:二叉树是一棵空树,或者是一棵由一个根节点和两棵互不相交的,分别称作根的左子树和右子树组成的非空树;左子树和右子树又同样都是二叉树。以下是对链式存

    2024年02月05日
    浏览(42)
  • 实验一 基于线性表的图书信息管理

    仅供参考学习,C语言书写 严蔚敏老师数据结构第二版C语言版实验一,可复制直接运行 以下是输入的数据(严老师课本提供的数据) 欢迎大家私信,一起讨论 1、基于顺序表存储结构的图书信息表的创建和输出 9787302257646 程序设计基础 25.00 9787302164340 程序设计基础(第2版) 2

    2024年02月08日
    浏览(30)
  • 创建图书表book,保存图书的信息,要求使用InnoDB引擎存储

    我们基于图书馆管理数据库dblibrary,现需要在该数据库中完成创建和管理表的操作。 操作项目如下: 先用MySQL8.0环境 (1)创建图书表book,保存图书的信息。图书表book结构如下表所示。要求使用InnoDB引擎存储。 图书表book结构 字段名称 字段内容 数据类型 长度 说明 Bookid 图

    2024年02月08日
    浏览(28)
  • 编程题实训-基于链表的图书信息管理

    第1关:基于链式存储结构的图书信息表的创建和输出  任务描述 本关任务:定义一个包含图书信息(书号、书名、价格)的链表,读入相应的图书数据来完成图书信息表的创建,然后统计图书表中的图书个数,同时逐行输出每本图书的信息。 编程要求 输入 输入n+1行,其中

    2024年02月06日
    浏览(22)
  • 创建一个图书信息管理的顺序表,数据有书本序号、书名、价格,以及对顺序表的增删改查的操作(c++)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 创建一个书本信息的顺序表,数据有书本序号、书名、价格,以及对顺序表的增删改查的操作。 提示:这里对文章进行总结: 例如:以上就是今天要讲的内容,本文仅仅简单介绍了创建一个书本信息的

    2024年02月07日
    浏览(38)
  • 线性表的基本操作及在顺序存储及链式存储的实现

    一个数据结构的基本操作是指其最核心、最基本的操作。其他较复杂的操作可通过其基本操作来实现。线性表的主要操作如下 注意:1:基本操作的实现取决于采用哪种存储结构,存储结构不同,算法的实现也不同 2:“” 表示c++中的引用调用。若存入的变量是指针变量,且

    2024年02月13日
    浏览(32)
  • 数据结构:线性表的链式储存

     🌈个人主页:Rookie Maker 🔥 系列专栏:数据结构 🏆🏆关注博主,随时获取更多关于IT的优质内容!🏆🏆   😀欢迎来到我的代码世界~ 😁 喜欢的小伙伴记得一键三连哦 ૮(˶ᵔ ᵕ ᵔ˶)ა ​ 链表:线性表的链式储存方式,逻辑结构不一定连续,物理结构不一定连续 描述

    2024年04月27日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包