当前位置: 首页 > news >正文

数据结构day5

link_stack.c

#include "link_stack.h"
//申请栈顶指针
top_p create_top()
{top_p top = (top_p)malloc(sizeof(top_t));if(top==NULL){printf("空间申请失败\n");return NULL;}top->len = 0;top->ptop = NULL;  //刚申请栈指针时没有指向元素return top;
}
//申请结点的函数
link_p create_node(int data)
{link_p new = (link_p)malloc(sizeof(link_stack));if(new==NULL){printf("申请空间失败\n");return NULL;}new->data = data;return new;
}
//入栈/压栈
void push_stack(top_p T,int data)
{if(T==NULL){printf("入参为空\n");return;}link_p new = create_node(data);//入栈new->next = T->ptop;T->ptop = new;T->len++;
}
//判空
int empty(top_p T)
{if(T==NULL){printf("入参为空\n");return -1;}return T->ptop==NULL?1:0;
}
//出栈/弹栈
void pop_stack(top_p T)
{if(T==NULL){printf("入参为空\n");return;}if(empty(T)){printf("栈为空,无需出栈");return;}link_p del=T->ptop;T->ptop=del->next;free(del);T->len--;
}
//遍历
void show_stack(top_p T)
{if(T==NULL){printf("入参为空\n");return;}if(empty(T)){printf("栈为空,不能遍历");return;}link_p p=T->ptop;while(p!=NULL){printf("%d->",p->data);p=p->next;}printf("NULL");putchar(10);
}
//销毁
void free_stack(top_p T)
{
if(T==NULL){printf("入参为空\n");return;}link_p p=T->ptop;while(p!=NULL){p=p->next;free(p);}}

link_stack.h

#ifndef __LINK_STACK_H__
#define __LINK_STACK_H__
#include <stdio.h>
#include <stdlib.h>   
typedef struct link_stack
{int data;	struct link_stack *next;  
}link_stack,*link_p;
typedef struct top_t
{int len;link_p ptop;
}top_t,*top_p;
top_p create_top();
link_p create_node(int data);
void push_stack(top_p T,int data);
int empty(top_p T);
void pop_stack(top_p T);
void show_stack(top_p T);
void free_stack(top_p T);#endif

main.c

#include "link_stack.h"
int main()
{top_p T =create_top();push_stack(T,1);push_stack(T,2);push_stack(T,3);push_stack(T,4);show_stack(T);return 0;
}

相关文章:

数据结构day5

link_stack.c #include "link_stack.h" //申请栈顶指针 top_p create_top() {top_p top (top_p)malloc(sizeof(top_t));if(topNULL){printf("空间申请失败\n");return NULL;}top->len 0;top->ptop NULL; //刚申请栈指针时没有指向元素return to…...

基础!!!吴恩达deeplearning.ai:神经网络中使用softmax

以下内容有任何不理解可以翻看我之前的博客哦&#xff1a;吴恩达deeplearning.ai 文章目录 softmax作为输出层的神经网络Tensorflow的实现softmax的改进实现数值舍入误差(Numerical Roundoff Errors)sigmoid修改修改softmax 在上一篇博客中我们了解了有关softmax的原理相关内容…...

mapbox高德地图与相机

mapbox高德地图与相机 本案例使用Mapbox GL JavaScript库创建高德地图。 演示效果引入 CDN 链接地图显示 创建地图实例定义地图数据源配置地图图层 设置地图样式实现代码 1. 演示效果 2. 引入 CDN 链接 <script src"https://api.mapbox.com/mapbox-gl-js/v2.12.0/mapb…...

Eslint在Vscode中使用技巧的相关技巧

ps :该文章会详细结论构建一个脚手架遇到的问题&#xff0c;会持续更新&#xff0c;请定时查看 Eslint相关​ 在vscode中使用eslint插件 在vscode中用户配置没有开启eslint.enable 在vscode中工作区配置开启eslint.enable settings.json中没有做eslint相关配置 在编写的vue…...

045-WEB攻防-PHP应用SQL二次注入堆叠执行DNS带外功能点黑白盒条件

045-WEB攻防-PHP应用&SQL二次注入&堆叠执行&DNS带外&功能点&黑白盒条件 #知识点&#xff1a; 1、PHP-MYSQL-SQL注入-二次注入&利用条件 2、PHP-MYSQL-SQL注入-堆叠注入&利用条件 3、PHP-MYSQL-SQL注入-带外注入&利用条件 演示案例&#xff1a…...

【蓝牙协议栈】【BR/EDR】【AVRCP】蓝牙音视频远程控制协议

1. AVRCP概念 AVRCP(Audio/Video Remote Control Profile):音视频远程控制协议定义了蓝牙设备和 audio/video控制功能通信的特点和过程,另用于远程控制音视频设备,底层传输基于 AVCTP(音视频控制传输协议)。 ➢该 Profile定义了AV/C数字命令控制集。命令和信息通过 AVCT…...

Head First Design Patterns - 单例模式

什么是单例模式 单例模式确保应用中&#xff0c;一个类最多只有一个实例单例模式也提供访问此实例的全局访问点单例模式实现中&#xff0c;使用了一个私有构造器&#xff0c;一个静态方法以及一个静态变量 为什么要用单例模式 java中静态全局变量也能做到被实例化一次 但是…...

Mysql的备份还原

模拟环境准备 创建一个名为school的数据库&#xff0c;创建一个名为Stuent的学生信息表 mysql> create database school; Query OK, 1 row affected (0.00 sec)mysql> use school; Database changed mysql> CREATE TABLE Student (-> Sno int(10) NOT NULL COMME…...

分区表介绍

问题 单表数据量过大&#xff0c;查询的性能通常会变得很低 查询时磁盘的IO次数增加&#xff1a;MySQL的InnoDB引擎使用B树维护索引&#xff0c;一个典型的索引节点大概可以存储60-120个数据记录&#xff0c;一个三层的索引大概可以存储百万条数据。如果订单表增加一个数量级…...

emacs 源码分析(七)

文章目录 emacs源码分析&#xff08;七&#xff09;自己动手把emacs的DEFUN宏抠出来 <2024-01-07 周日> emacs源码分析&#xff08;七&#xff09; 这DEFUN宏就像胶水一样&#xff0c;它把c代码和emacs-lisp代码给联系起来。但是DEFUN宏看着怪恐怖的有没有&#xff01;…...

Linux运维-Web服务器的配置与管理(Apache+tomcat)(没成功,最后有失败经验)

Web服务器的配置与管理(Apachetomcat) 项目场景 公司业务经过长期发展&#xff0c;有了很大突破&#xff0c;已经实现盈利&#xff0c;现公司要求加强技术架构应用功能和安全性以及开始向企业应用、移动APP等领域延伸&#xff0c;此时原来开发web服务的php语言已经不适应新的…...

探讨分布式数据库ID生成解决方案

在技术面试中&#xff0c;面试官通常通过挑战应聘者的分布式系统知识来评估其能力。今天&#xff0c;让我们模拟一场面试现场&#xff0c;深入了解关于分布式数据库ID生成的解决方案。 面试官&#xff1a;嘿&#xff0c;小伙子&#xff0c;分布式数据库ID生成解决方案了解吗&a…...

Clickhouse填坑记4:Too many parts问题分析

Clickhouse在进行大数据量同步时,感觉很爽,插入速度非常快,但是,在使用过程中却出现了几次“Too many parts”异常报错,搞得很痛苦,这里记录一下解决过程。 我这边采用的是Flink程序,实时将数据写入ClickHouse,在执行一段时间后,会提示“Too many parts”异常,如下异…...

CertiK CSO Dr. Kang Li 确认出席Hack .Summit() 香港区块链盛会

CertiK CSO Dr. Kang Li 确认将出席由 Hack VC 主办&#xff0c;并由 AltLayer 和 Berachain 联合主办&#xff0c;与 SNZ 和数码港合作&#xff0c;由 Techub News 承办的Hack.Summit() 2024区块链开发者盛会。 Dr. Kang Li 目前担任CertiK首席安全官。他是清华蓝莲花战队启蒙…...

C++ 游戏飞机大战, 字符型的

//#define _CRT_SECURE_NO_WARNINGS 1 用于禁止不安全函数的警告 #include<iostream> #include<stdlib.h> #include<string> #include<conio.h> #include<Windows.h> #include<time.h> #include <graphics.h> using namespace std;…...

用html编写的简易新闻页面

用html编写的简易新闻页面 相关代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document<…...

docker-mysql:5.7安装

1、下载mysql:5.7镜像 [rootlocalhost ~]# docker search mysql (某个XXX镜像名字) [rootlocalhost ~]# docker pull mysql:5.7 按装之前查看一下是否按装过mysql。如果安装过会占用3306端口。 [rootlocalhost ~]# ps -ef | grep mysql 2、简单的安装 [rootlocalhost ~]# d…...

SQLPro Studio:数据库管理的革命性工具 mac版

SQLPro Studio是一款强大的数据库管理和开发工具&#xff0c;它旨在提供高效、便捷和安全的数据库操作体验。无论是数据库管理员、开发人员还是数据分析师&#xff0c;SQLPro Studio都能满足他们在数据库管理、查询、设计和维护方面的需求。 SQLPro Studio mac版软件获取 首先…...

【小沐学QT】QT学习之OpenGL开发笔记

文章目录 1、简介2、Qt QOpenGLWidget gl函数3、Qt QOpenGLWidget qt函数4、Qt QOpenGLWindow5、Qt glut6、Qt glfw结语 1、简介 Qt提供了与OpenGL实现集成的支持&#xff0c;使开发人员有机会在更传统的用户界面的同时显示硬件加速的3D图形。 Qt有两种主要的UI开发方…...

kali安装ARL灯塔(docker)

1、root身份进入容器 ┌──(root㉿Kali)-[~/桌面] └─# su root ┌──(root㉿Kali)-[~/桌面] └─# docker 2、先更新再克隆 ┌──(root㉿Kali)-[~/桌面] └─# apt-get update …...

别被128TB吓到!深入浅出解读Linux /proc/kcore的ELF内存布局与物理内存映射

别被128TB吓到&#xff01;深入浅出解读Linux /proc/kcore的ELF内存布局与物理内存映射 第一次在终端里敲下ls -lh /proc/kcore时&#xff0c;那个醒目的128TB文件大小确实让我倒吸一口凉气——我的硬盘总共才1TB&#xff0c;这玩意儿是怎么存在的&#xff1f;相信不少Linux开发…...

告别SDR时代:手把手教你配置ONFI NV-DDR接口,让NAND Flash性能起飞

告别SDR时代&#xff1a;手把手教你配置ONFI NV-DDR接口&#xff0c;让NAND Flash性能起飞 在嵌入式存储领域&#xff0c;NAND Flash的性能瓶颈往往源于接口技术的滞后。当项目面临启动速度不足或数据吞吐量受限时&#xff0c;工程师们常发现传统SDR接口已成为系统性能的"…...

2026数据中台进阶指南:从技术基因、产品形态到优势领域的全景解析

一、引言&#xff1a;数据中台从“建起来”到“用起来”&#xff0c;治理能力成为分水岭2026年&#xff0c;企业数据中台建设已全面进入深水区。经过上一阶段的集中投入&#xff0c;大量企业完成了数据汇聚与平台搭建&#xff0c;但新的瓶颈随之浮现&#xff1a;数据中台“建而…...

告别敏捷!分布式团队正在回归瀑布制的真相——软件测试视角的深度剖析

一场正在发生的范式回摆在敏捷宣言问世二十余年后&#xff0c;软件工程领域正悄然经历一场静默但深刻的反思。尤其是在成员遍布全球、时区交错的分布式团队中&#xff0c;敏捷方法论所描绘的“理想国”正遭遇现实的无情拷问。每日站会沦为形式主义的远程汇报&#xff0c;迭代周…...

JSONEditor完整教程:轻松掌握JSON可视化编辑的终极指南

JSONEditor完整教程&#xff1a;轻松掌握JSON可视化编辑的终极指南 【免费下载链接】jsoneditor A web-based tool to view, edit, format, and validate JSON 项目地址: https://gitcode.com/gh_mirrors/js/jsoneditor JSON数据在现代Web开发中无处不在&#xff0c;无论…...

Unity 2021.1 + Skynet 服务端通信:从零搞定 Sproto 协议配置与心跳机制实战

Unity 2021.1与Skynet服务端通信&#xff1a;Sproto协议与心跳机制深度实践 当Unity客户端需要与Skynet服务端建立稳定通信时&#xff0c;协议设计与心跳机制往往是开发者最先遇到的两大技术门槛。本文将带你从零构建一个完整的通信Demo&#xff0c;不仅涵盖Sproto协议的基础配…...

Phi-3.5-mini-instruct惊艳效果展示:中英混合问答真实案例集

Phi-3.5-mini-instruct惊艳效果展示&#xff1a;中英混合问答真实案例集 1. 模型概览与核心能力 Phi-3.5-mini-instruct是微软推出的轻量级指令微调大语言模型&#xff0c;采用Transformer解码器架构&#xff0c;支持128K超长上下文窗口。这个3.8B参数的模型在多语言对话、代码…...

5分钟掌握:免费开源AI语音修复工具VoiceFixer终极指南

5分钟掌握&#xff1a;免费开源AI语音修复工具VoiceFixer终极指南 【免费下载链接】voicefixer General Speech Restoration 项目地址: https://gitcode.com/gh_mirrors/vo/voicefixer 还在为录音中的杂音、失真而烦恼吗&#xff1f;无论是会议录音、播客制作还是老式录…...

城通网盘下载加速终极指南:3步解锁全速下载的免费开源方案

城通网盘下载加速终极指南&#xff1a;3步解锁全速下载的免费开源方案 【免费下载链接】ctfileGet 获取城通网盘一次性直连地址 项目地址: https://gitcode.com/gh_mirrors/ct/ctfileGet 还在为城通网盘几十KB/s的龟速下载而烦恼吗&#xff1f;面对几个G的大文件&#x…...

算力赋能三维视觉创新,Lab4AI亮相 China3DV 2026

2026年4月17—19日&#xff0c;第五届中国三维视觉大会&#xff08;China3DV 2026&#xff09; 将在杭州国际博览中心隆重召开。作为国内三维视觉领域最高规格的学术研讨盛会&#xff0c;本次大会由中国图象图形学学会&#xff08;CSIG&#xff09;主办、CSIG三维视觉专委会承办…...