数据结构实验1 链表 实现学生信息存储,功能 增删改查,实现 结构类型

//一共三个结构,一个是学生的信息即struct Stu包括学生的基本信息和显示信息建立信息的函数,
//一个是节点struct Node,包括数据项学生和指针域
//一个是链表struct Line,包括增加节点函数enstudent(const Item & s),判断链表空满的函数
//删除节点函数destudent() ,查询节点函数Node * search()  ,修改节点函数void alter() 
//查找并显示函数void find()    


//除了三个结构还有两个函数  void showLine(Line * a)  ,显示全部学生信息
//和   void newstudent(Line & b) ,增加学生个数      这两个都在main()函数中使用




#include<iostream.h>
struct Stu        //学生信息的结构
{
	int id;
	char name[30];
	float score;

	void show()const   //显示学生的信息
	{
		cout<<"学生信息:\n学号:"<<id<<"\n姓名:"
		<<name<<"\n分数"<<score<<endl;
	}
	void set()      //新建学生信息
	{
		cout<<"请输入学号,姓名,分数\n ";
		cin>>id>>name>>score; 
	}
};


typedef Stu Item;     //让Item成为Stu的别名,看起来清楚一点,虽然Stu也比较短

struct Node     //链表的节点
{
	Item item;     //数据项
	Node * next;   //节点的指针域
};


struct Line      //链表主体
{
	Node * front;     //头节点
	Node * rear;     //尾节点
	int items;       //新建的节点数,后面用来判断链表是否为空或满
	int max;         //最大节点数,由用户输入

	bool isfull()      //判断链表是否为满,即满时节点数items和最大节点数max相等,是就返回true
	{
		return items==max;     
	}

	bool isempty()    //判断链表是否为空
	{
		return items==0;
	}


	bool enstudent(const Item & s)     //增加新节点
	{
		if(isfull())                   //先判断链表是不是满的,满的返回false表示无法加入新节点
			return false;
		Node * add = new Node;         //new动态创建一个节点Node空间,用add标记
		if(add==NULL)                  //如果创建后add没有空间,即add==NULL,表示分配空间时失败,返回false
			return false;
		add->item=s;                  //把add节点的数据项置为传入的Item类型的s,指针置为空&
  • 12
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值