国庆假期作业day2

作业:创建一个双向链表,将26个英文字母通过头插的方式插入到链表中,通过尾删的方式将数据读取出来并删除

#ifndef _TEXT_H
#define _TEXT_H
#include<myhead.h>
typedef int datatype;
typedef struct dblist
{union {datatype data;//数据域int len;};struct dblist *pre;//指针域struct dblist *next;}Node,*pdblist;
//创建头结点
pdblist create_head();
//创建结点
pdblist create_node(datatype data);
//头插
int insert_head(pdblist H,datatype data);
//输出双向链表
int out_dblist(pdblist H);
//尾删
int dele_tail(pdblist H);#endif
#include "text.h"
//创建头结点
pdblist create_head()
{//在堆区申请一个结构体的空间pdblist H = (pdblist)malloc(sizeof(Node));if(H==NULL){printf("申请空间失败\n");return NULL;}H->len=0;H->pre=NULL;H->next=NULL;return H;
}
//创建结点
pdblist create_node(datatype data)
{pdblist new = (pdblist)malloc(sizeof(Node));if(new==NULL){printf("申请空间失败\n");return NULL;}new->data=data;new->pre=NULL;   //新结点的前驱指向NULLnew->next=NULL;  //新结点的后继指向NULLreturn new;
}
//头插
int insert_head(pdblist H,datatype data)
{if(H==NULL){printf("入参为空\n");return -1;}//先创建新结点pdblist new = create_node(data);new->next = H->next;if(H->next!=NULL){H->next->pre=new;}new->pre=H;H->next=new;H->len++;return 0;
}
//输出双向链表
int out_dblist(pdblist H)
{if(H==NULL){printf("入参为空\n");return -1;}if(H->next==NULL){printf("双向链表为空\n");return -2;}pdblist p = H->next;   //不让H中的len参与输出while(p!=NULL){printf("%c->",(char)p->data);p = p->next;}printf("NULL\n");return 0;
}
//尾删
int dele_tail(pdblist H)
{if(H==NULL){printf("入参为空\n");return -1;}if(H->next==NULL){printf("双向链表为空\n");return -2;}pdblist p = H;//找最后一个结点while(p->next!=NULL){p = p->next;}p->pre->next = p->next;   //让倒数第二个结点的next指向NULL//p->pre->next = NULL;free(p);p=NULL;H->len--;return 0;
}
#include"text.h"
int main()
{//创建头结点pdblist H=create_head();//调用头插函数for(int i=65;i<=90;i++){insert_head(H,i);}out_dblist(H);//调用尾删for(int i=0;i<26;i++){dele_tail(H);}out_dblist(H);return 0;
}

 

 

效果图: 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/95357.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

后端面经学习自测(二)

文章目录 1、Http1.1和2.0的区别大概是什么&#xff1f;HTTP & HTTPS 2、HTTP&#xff0c;用户后续的操作&#xff0c;服务端如何知道属于同一个用户cookie & session & token手机验证码登录流程SSO单点登录 3、如果服务端是一个集群机器&#xff1f;4、hashmap是线…

[React源码解析] React的设计理念和源码架构 (一)

任务分割异步执行让出执法权 文章目录 1.React的设计理念1.1 Fiber1.2 Scheduler1.3 Lane1.4 代数效应 2.React的源码架构2.1 大概图示2.2 jsx2.3 Fiber双缓存2.4 scheduler2.5 Lane模型2.6 reconciler2.7 renderer2.8 concurrent 3.React源码调试 1.React的设计理念 Fiber: 即…

项目进展(八)-编写代码,驱动ADS1285

一、代码 根据芯片的数据手册编写部分驱动&#xff0c;首先看部分引脚的波形&#xff1a; DRDY: CS&#xff1a; 首先在代码初始化时连续写入三个寄存器&#xff1a; void WriteReg(uint8_t startAddr, uint8_t *regData, uint8_t number) {uint8_t i0;// 循环写number1次…

基于STM32 ZigBee无线远程火灾报警监控系统物联网温度烟雾

实践制作DIY- GC00168---ZigBee无线远程监控系统 一、功能说明&#xff1a; 基于STM32单片机设计---ZigBee无线远程监控系统 二、功能说明&#xff1a; 1个主机&#xff1a;STM32F103C系列单片机LCD1602显示器蜂鸣器 ZigBee无线模块3个按键&#xff08;设置、加、减&#xff0…

剑指offer——JZ77 按之字形顺序打印二叉树 解题思路与具体代码【C++】

一、题目描述与要求 按之字形顺序打印二叉树_牛客题霸_牛客网 (nowcoder.com) 题目描述 给定一个二叉树&#xff0c;返回该二叉树的之字形层序遍历&#xff0c;&#xff08;第一层从左向右&#xff0c;下一层从右向左&#xff0c;一直这样交替&#xff09; 数据范围&#x…

【树】树的直径和重心

目录 一.树的直径 &#xff08;1&#xff09;定义 &#xff08;2&#xff09;思路 &#xff08;3&#xff09;例题 &#xff08;4&#xff09;std(第一小问) 二.树的重心 &#xff08;1&#xff09;介绍 &#xff08;2&#xff09;求重心 &#xff08;3&#xff09;例…

【逐步剖C】-第十一章-动态内存管理

一、为什么要有动态内存管理 从我们平常的学习经历来看&#xff0c;所开辟的数组一般都为固定长度大小的数组&#xff1b;但从很多现实需求来看需要我们开辟一个长度“可变”的数组&#xff0c;即这个数组的大小不能在建立数组时就指定&#xff0c;需要根据某个变量作为标准。…

我的创作纪念日-第1024天

文章目录 一、机缘二、收获三、日常四、憧憬 一、机缘 不知不觉&#xff0c;已经加入CSDN这个大家庭5年多了&#xff0c;回想起3年前发布第一篇博客的时候&#xff0c;那时我记得很清楚&#xff0c;我在做项目时遇到报错&#xff0c;解决问题之后&#xff0c;然后想起了好多人…

Ipython和Jupyter Notebook介绍

Ipython和Jupyter Notebook介绍 Python、IPython和Jupyter Notebook是三个不同但密切相关的工具。简而言之&#xff0c;Python是编程语言本身&#xff0c;IPython是对Python的增强版本&#xff0c;而Jupyter Notebook是一种在Web上进行交互式计算的环境&#xff0c;使用IPytho…

【Python基础】3. 关键字与运算符

文章目录 关键字assert 运算符总结 关键字 Python 的关键字共35个&#xff0c;有些关键字与C语言的一致。标红的是同于C的部分。 通过help("keywords")函数可以查看所有关键词列表。 类别关键词含义控制语句关键词forfor 循环whilewhile 循环break跳出当前循环con…

java 调用合约使用nonce 可能会出现的问题

热点账户 所谓的热点账户就是频繁被使用的账户&#xff0c;在以太坊中比如交易所的统一出币账户&#xff0c;在短时间内频繁发起交易的账户&#xff0c;均可被称作热点账户。 replacement transaction underpriced异常 如果系统中的热点账户或普通账户发起交易时出现error: re…

ChatGPT付费创作系统V2.3.4独立版 +WEB端+ H5端 + 小程序最新前端

人类小徐提供的GPT付费体验系统最新版系统是一款基于ThinkPHP框架开发的AI问答小程序&#xff0c;是基于国外很火的ChatGPT进行开发的Ai智能问答小程序。当前全民热议ChatGPT&#xff0c;流量超级大&#xff0c;引流不要太简单&#xff01;一键下单即可拥有自己的GPT&#xff0…

时序分解 | Matlab实现CEEMDAN完全自适应噪声集合经验模态分解时间序列信号分解

时序分解 | Matlab实现CEEMDAN完全自适应噪声集合经验模态分解时间序列信号分解 目录 时序分解 | Matlab实现CEEMDAN完全自适应噪声集合经验模态分解时间序列信号分解效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab实现CEEMDAN完全自适应噪声集合经验模态分解时间…

【C++11】Lambda 表达式:基本使用 和 底层原理

文章目录 Lambda 表达式1. 不考虑捕捉列表1.1 简单使用介绍1.2 简单使用举例 2. 捕捉列表 [ ] 和 mutable 关键字2.1 使用方法传值捕捉传引用捕捉 2.2 捕捉方法一览2.3 使用举例 3. lambda 的底层分析 Lambda 表达式 书写格式&#xff1a; [capture_list](parameters) mutabl…

C++(STL容器适配器)

前言&#xff1a; 适配器也称配接器&#xff08;adapters&#xff09;在STL组件的灵活组合运用功能上&#xff0c;扮演着轴承、转换器的角色。 《Design Patterns》对adapter的定义如下&#xff1a;将一个class的接口转换为另一个class的接口&#xff0c;使原本因接口不兼容而…

信息学奥赛一本通-编程启蒙3318:练54.1 6084问题

3318&#xff1a;练54.1 6084问题 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 419 通过数: 300 从这里进入题目&#xff1a;信息学奥赛一本通-编程启蒙&#xff08;C版&#xff09;在线评测系统 【题目描述】 任意给出一个四位数&#xff0c;把它重新组成一个…

【C语言】语法--联合体union详解

本文参考博客: https://blog.csdn.net/m0_57180439/article/details/120417270 定义及示例: 联合是一种特殊的自定义类型,该种类型定义的变量也包含一系列的成员,特征是这些成员共用同一块空间,所以联合体也被称为共用体。 #include<stdio.h> union Un//联合类型…

Eureka

大家好我是苏麟今天带来Eureka的使用 . 提供者和消费者 在服务调用关系中&#xff0c;会有两个不同的角色&#xff1a; 服务提供者&#xff1a;一次业务中&#xff0c;被其它微服务调用的服务。&#xff08;提供接口给其它微服务&#xff09; 服务消费者&#xff1a;一次业务…

CCF CSP认证 历年题目自练 Day22

CCF CSP认证 历年题目自练 Day22 题目一 试题编号&#xff1a; 201912-1 试题名称&#xff1a; 报数 时间限制&#xff1a; 1.0s 内存限制&#xff1a; 512.0MB 题目分析&#xff08;个人理解&#xff09; 每一个人都要报多少个数字&#xff0c;我选择字典存储&#xff0…

私有云盘:lamp部署nextcloud+高可用集群

目录 一、实验准备&#xff1a; 二、配置mariadb主从复制 三台主机下载mariadb 1&#xff09;主的操作 2&#xff09;从的操作 3&#xff09;测试数据是否同步 三、配置nfs让web服务挂载 1、安装 2、配置nfs服务器 3、配置web服务的httpd 4、测试 四、web 服务器 配…