首页 > 其他分享 >链栈存储学生信息三级引用

链栈存储学生信息三级引用

时间:2024-11-01 19:51:25浏览次数:3  
标签:存储 return int top next 链栈 printf NULL 三级

链栈,自己实现一遍,但是节点存储不是整数,存储学生信息(年龄,分数,姓名)三级引用。

1、建立学生信息结构体,将data改为学生信息结构体类型。

2、循环入栈和出栈。

#include <myhead.h>

typedef struct student
{
	int age;
	float score;
	char name[20];
}stu;
typedef struct node
{
	stu s;
	struct node *next;
}no,*Pnode;
typedef struct
{
	Pnode top;
	Pnode next;
}Stact,*Pstact;

Pstact create()
{
	Pstact p=malloc(sizeof(Stact));	
	if(p==NULL)
	{
		printf("初始化失败\n");
		return NULL;
	}
	p->top=NULL;
	p->next=NULL;
	printf("初始化成功\n");
	return p;
}

int intput(Pstact Q)
{
	if(Q==NULL)
	{
		printf("入栈失败\n");
		return -1;
	}
	else
	{
		int n;
		printf("输入学生信息个数:");
		scanf("%d",&n);
		printf("\tage\tscore\tname\n");
		for(int i=0;i<n;i++)
		{
			Pnode p=malloc(sizeof(no));
			printf("请输入第%d个学生的信息:\n",i+1);
			printf("age:");
			scanf("%d",&p->s.age);
			printf("score:");
			scanf("%f",&p->s.score);
			printf("name:");
			scanf("%s",p->s.name);
			p->next=Q->next;
			Q->next=p;
			Q->top=p;
			printf("录入成功\n");
		}
		return 0;
	}
}
int pop(Pstact Q)
{
	if(Q==NULL||Q->top==NULL)
	{
		printf("出栈失败\n");
		return -1;
	}
	while(Q->top!=NULL)
	{
	printf("出栈数据为:\n");
	printf("\tage\tscore\tname\n");
	printf("\t%d\t%.2f\t%s\n",Q->top->s.age,Q->top->s.score,Q->top->s.name);
	Pnode L=Q->top;
	Q->top=L->next;
	Q->next=L->next;
	free(L);
	L=NULL;
	}
}

int main(int argc, const char *argv[])
{
	Pstact Q=create();
	
	intput(Q);

	pop(Q);
	return 0;
}

代码运行效果

标签:存储,return,int,top,next,链栈,printf,NULL,三级
From: https://blog.csdn.net/m0_72110718/article/details/143438367

相关文章

  • 存储服务nfs
    1.概述存储:用于存放用户上传的内容(数据),一般应用在网站集群中.为何用?如果不使用存储,用户上传的数据就直接存放在网站服务器上了,用户下次访问就可能找不到.如果使用存储,用户上传的内容存放在存储上面,用户访问就会访问存储.位置:网站后排.2.存储选型⭐⭐⭐......
  • juicefs元数据存储方式
    环境文件系统使用juicefs,元数据存储使用postgresql,数据存储使用minio问题?通过juicefs写入一个文件,元数据在postgresql中是如何存储的?数据在minio中又是如何存储的?使用docker部署完测试环境后,新建file1、dir1/file1、dir1/file2三个文件在postgresql中jfs_chunk表中记录着文......
  • 数据库中对SQL存储过程的学习
    MySQL存储过程目录MySQL存储过程什么是存储过程存储过程操作创建存储过程调用存储过程删除存储过程查看存储过程存储过程的优缺点什么是存储过程MySQL存储过程(StoredProcedure)是一组为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给......
  • Prometheus03 Prometheus服务发现, 各种exporter, 容器化监控, Federation联邦, Victo
    6服务发现6.1服务发现原理6.2文件服务发现#准备主机节点列表文件,可以支持yaml格式和json格式#注意:此文件不建议就地编写生成,可能出现加载一部分的情况cattargets/prometheus*.yaml-targets:-master1:9100labels:app:prometheus#修改prometheus配置......
  • mcu程序中的存储模块
    硬件知识基于成本与需求的考虑,铁电已经很少使用,最常用的是eeprom与flasheeprom相对于flash的优势是寿命长(100万次1万次),且可以按字节操作所以一般嵌入式系统中eeprom存储运行时参数(掉电需保存的参数或者频繁需要修改的数据),flash存储写次数较少但数据量较大的数据(日志......
  • Python数据分析NumPy和pandas(十六、文本格式数据的读取与存储:csv、json、xml和html)
    一、分段读取文本文件在处理非常大的文件时,未找到合适的数据处理方法前,我们一般希望只读取文件的一小部分或遍历文件的较小块来做预处理或参考。这种情况可以采用分段读取文本文件的方式。我们加载一个10000行的ex6.csv文件,其内容如下:一般情况下,对于pandas读取大文件数据时......
  • Docker:存储原理
    Docker:存储原理镜像联合文件系统overlay镜像存储结构容器存储结构存储卷绑定挂载存储卷结构镜像联合文件系统联合文件系统UnionFileSystem是一种分层,轻量且高效的文件系统。其将整个文件系统分为多个层,层与层之间进行覆盖,并对外表现为一个一致的文件系统。......
  • Docker:存储卷
    Docker:存储卷存储卷命令dockervolumelsdockervolumecreatedockervolumeinspectdockervolumermdockervolumeprune分类数据卷绑定卷临时卷存储卷在Docker中,容器的文件存储结构如下:容器时基于镜像产生的,一个镜像可以实例化出多个容器,为了节省镜像的存储......
  • MySQL存储引擎——针对实习面试
    目录MySQL支持哪些存储引擎?MySQL存储引擎架构了解嘛?MyISAM和InnoDB有什么区别?MyISAM和InnoDB如何选择?如何查看表的存储引擎?如何修改表的存储引擎?MySQL支持哪些存储引擎?MySQL支持多种存储引擎,包括InnoDB、MyISAM、MEMORY、ARCHIVE、BLACKHOLE、FEDERATED、NDBCluste......
  • 数据库之存储过程
    存储过程一、存储过程介绍1、什么是存储过程?存储过程是实现某个特定功能的sql语句的集合,编译后的存储过程会保存在数据库中,通过存储过程的名称反复的调用执行。2、存储过程的优点?(1)存储过程创建后,就可以反复的调用和使用,不需要重新写复杂的语句(2)创建,修改存储过程不会对数据有......