c语言用链表编写简单程序,C语言单链表简单实现(简单程序复杂化)

PS: goto还是很好玩的。

#include

#include

typedef struct _node{

int value;

struct _node *next;

} Node;

typedef struct _list{

Node* head;

}List;

void add(List* plist,int number);

void print(List* list);

void deletel(List* list,int number);

void freel(List* list);

int main(int argc, char *argv[]) {

Node *head = NULL;

List list;

int number=0;

list.head=NULL;

for(;;){

printf("\n这是一个链表,现有如下功能 1.添加节点 2.遍历链表 3.查找并删除节点 4.释放链表 5.退出程序 \n请输入你想要进行的操作的选项:\n" );

out:

scanf("%d",&number);

switch(number){

case 1:

printf("你选择了添加节点\n请输入添加节点的值,输入-1结束添加\n");

do{

scanf("%d",&number);

if(number != -1){

//添加一个新的节点挂载。

add(&list,number);

}

}while(number != -1);

printf("添加完毕");

break;

case 2:

printf("你选择了遍历链表\n");

//打印链表

print(&list);

break;

case 3:

printf("你选择了查找并删除节点,请输入节点数据\n");

scanf("%d",&number);

//删除一个节点

deletel(&list,number);

break;

case 4:

printf("你选择了释放链表");

//释放链表

freel(&list);

printf("释放完毕");

break;

case 5:

goto end;

default :

printf("输入错误,请重新输入\n");

goto out;

}

}

end:

printf("拜拜");

return 0;

}

void add(List* plist,int number){

Node *p =(Node*)malloc(sizeof(Node));

p->value =number;

p->next =NULL;

Node *last =plist->head;

if(last){

while(last->next){

last = last->next;

}

last->next=p;

}else{

plist->head = p;

}

}

//遍历链表

void print(List* list){

Node *p;

for(p=list->head;p;p=p->next){

printf("%d\t",p->value);

}

printf("\n");

}

//查找并删除节点

void deletel(List* list,int number){

Node* p;

int isFound =0;

for(p=list->head;p;p=p->next){

if(p->value==number){

printf("找到了\n");

isFound = 1;

break ;

}

}

if(!isFound){

printf("没找到");

}

Node *q;

for(q=NULL,p=list->head;p;q=p,p=p->next){

if(p->value==number){

if(q){

q->next = p->next;

}else{

list->head=p->next;

}

free(p);

printf("已经删除");

break ;

}

}

}

//释放链表

void freel(List* list){

Node *q;

Node* p;

for(p=list->head;p;p=q){

q=p->next;

free(p);

}

}

读书和健身总有一个在路上

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

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

相关文章

C++语言程序设计上机指导(二级),C++语言程序设计上机指导(二级)

第1章 上机基础1.1 考试大纲1.2 考纲提示1.3 考试要求1.4 题型和分值1.5 考试环境1.6 上机操作步骤1.6.1 启动1.6.2 登录1.6.3 考试开始1.6.4 交卷第2章 C语言基础2.1 C语言概述2.1.1 C语言的基本符号2.1.2 C语言的词汇2.1.3 C程序的基本框架2.2 数据类型、表达式和基本运算2.2…

6s在c语言中的用法,C语言中assert的用法讲解

assert是指编写代码时做出一些假设,断言就是用于在代码中捕捉这些假设,可以将断言看作是异常处理的一种高级形式。下面是小编为大家整理的C语言assert的用法讲解,欢迎参考~assert宏的原型定义在中,其作用是如果它的条件返回错误&a…

cmd c语言 图形,CMD-C彩图隐写方案

1.前言本文提出了当前经典的彩图隐写方案,它具有聚类修改方向的特点,是第一个公认的彩色图隐写方案,为后续彩图隐写术和隐写分析工作提供了清晰的思路,具有深远的意义。2.背景现代灰度图像隐写方案是在最小化失真函数框架下设计的…

android 闪存软件测试,手机为什么这么卡:闪存I/O测试AndroBench

手机为什么这么卡:闪存I/O测试AndroBench软件名称:Androbench软件版本:4.0.1软件大小:1.01MB软件授权:免费适用平台:Android很多朋友买手机只是为了日常使用,卡顿是最影响日常使用的心情的问题了…

android 文件并发读写,Android下,rxJava+retrofit 并发上传文件和串行上传文件的效率为什么差不多?...

有个功能需要同时上传N个文件。代码如下:ApiService as ApiManager.getApiService();final ExecutorService es Executors.newFixedThreadPool(9);final int count Bimp.tempSelectBitmap.size();final CountDownLatch finishedLatch new CountDownLatch(count)…

android长按home键关闭程序,应用程序退出后Dialog弹出

FreeMusic新增功能1.按住Home键,back键,或recent键 弹出提示框难点:1.当应用程序退出的时候,dialog 依赖所在Activity的context,而应用程序退出的时候 Activity销毁,所以context随之销毁解决方案&#xff1…

android下挂串口中断,请大神看看为啥串口中断无法打断定时器中断

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼#includesbit RSP2^6;sbit RWP2^5;sbit LCDNP2^7;sbit xiangP1^5;sbit ledP2^1;#define GPIO P0#define uchar unsigned char#define uint unsigned intunsigned char date1,aa,ee,k,flag;unsigned char code table[]"time ov…

android手机浏览器研究报告,QQ浏览器Android客户端产品体验报告

概览手机:魅族MX3操作系统:Flyme OS 3.5.2(A19220)体验产品:QQ浏览器Android客户端软件版本:5.7.2.1400需求分析目标人群:所有移动互联网网民使用场景:用户使用手机上网浏览网页、看小说、看视频、购物&…

android 音乐 数据库,android从数据库中取音乐数据

android从手机数据库中取音乐数据直接贴代码public void getMp3(){list new ArrayList<>();Cursor mAudioCursor this.getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,null,// 字段 没有字段 就是查询全部信息 相当于SQL语句中的 “ * ”…

labview利用簇模拟汽车控制_在LabVIEW应用程序中何时应采用面向对象技术 (翻译)...

在LabVIEW应用程序中何时应采用面向对象技术 (翻译)在LabVIEW中应用面向对象编程技术并不是一件特别容易的事情&#xff0c;尤其是先期的学习成本很高&#xff0c;但是在开发大型、复杂的、长期维护的程序时&#xff0c;使用面向对象技术会带来较好的回报。自从LabVIEW8.2版本引…

华gt2升级鸿蒙,华为手表GT2 Pro已开始内部测试,升级鸿蒙操作系统

据悉&#xff0c;华为鸿蒙应用已经开始在手表上布局。根据鸿蒙OS分布式计算的特点&#xff0c;它最终可以实现手机计算、手表优化显示、功能扩展和续航的需求。而华为WATCH GT2 Pro将成为华为首款支持鸿蒙应用的手表产品&#xff0c;不过要等到10月30日之后我们才能够购买到。在…

flutter 如何判断在哪个页面_Agora 教程:构建你的第一个 Flutter 视频通话应用

作者&#xff1a;张乾泽&#xff0c;声网Agora 工程师我们基于 Agora SDK 封装了 Agora Flutter SDK &#xff0c;开发者可以在 Flutter 应用中快速实现稳定、可靠的实时音视频通话、互动直播应用。本文将介绍如何使用 Agora Flutter SDK 快速构建一个简单的移动跨平台视频通话…

华为鸿蒙汽车自动驾驶,华为鸿蒙车机OS现身,自动驾驶再进化(一)

在2019年的上海车展上&#xff0c;华为首次公开宣布进入汽车领域。时隔一年多&#xff0c;在2020北京车展上我们将再次看到华为的身影。这一次&#xff0c;人们的疑问不再是“华为要干嘛”&#xff0c;而是变成了“华为干得怎么样了”。华为也用丰硕的成果给出了答案&#xff1…

.net core高并发_高并发下的Node.js与负载均衡

阅读本文约需要6分钟大家好&#xff0c;我是你们的导师&#xff0c;我每天都会在这里给大家分享一些干货内容(当然了&#xff0c;周末也要允许老师休息一下哈)。上次老师跟大家分享了下浅谈前端自动化构建的相关知识&#xff0c;今天跟大家分享浅谈前端自动化构建的相关知识参考…

android arm 寄存器,ARM汇编

8种机械键盘轴体对比本人程序员&#xff0c;要买一个写代码的键盘&#xff0c;请问红轴和茶轴怎么选&#xff1f;Android Native 进程启动流程ARM传参&#xff0c;R0-R3传递前四个参数1. Thumb 指令集特点Thumb 指令集指令长度&#xff1a;16或32&#xff0c;16为为主Thumb-16 …

如何制作印章_用Word也能做出逼真的电子印章!简单3步!1分钟搞定

我们在办公的时候经常需要用到印章&#xff0c;以前可能是在纸上盖章&#xff0c;现在电子文档比较多&#xff0c;电子印章也开始流行使用&#xff0c;那么我们如何制作一个逼真的印章呢&#xff1f;很简单&#xff0c;用Word就可以搞定啦&#xff01;一、印章制作1、圆圈制作首…

鸿蒙唯独没有手机,想用鸿蒙OS,却没有华为手机?华为高层:还有1亿台设备可体验...

不再是PTT系统&#xff01;鸿蒙OS真的要来了&#xff0c;年内初步实现全场景交互从2019年开始&#xff0c;有关 鸿蒙OS 的消息越来越多&#xff0c;不仅公布了发展规划&#xff0c;也确定将适配多款机型&#xff0c;期待度直接拉满。可惜以目前的情况来看&#xff0c;鸿蒙OS 适…

@kafkalistener中id的作用_SSM框架(十一):Spring框架中的IoC(1)

控制反转 IOC&#xff1a;控制反转&#xff08;Inversion of Control&#xff0c;缩写为IoC&#xff09;&#xff0c;是面向对象编程中的一种设计原则&#xff0c;可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入&#xff08;Dependency Injection&#xff…

doxygen生成html文件,doxygen 的安装、配置、编译及使用(从源代码到文档)

doxygen 的安装、配置、编译及使用(从源代码到文档)1. 什么是 doxygen下面是 doxygen 主页上的一段说明文字Source code documentation generator toolDoxygen is a documentation system for C,C, Java, Objective-C, Python, IDL (Corba and Microsoft flavors),Fortran, VHD…

keras优化算法_目标检测算法 - CenterNet - 代码分析

代码出处吃水不忘打井人&#xff0c;分析github上的基于keras的实现&#xff1a;xuannianz/keras-CenterNet​github.com代码主体结构模型训练的主函数流程如下所示&#xff0c;该流程也是使用keras的较为标准的流程。其中代码篇幅较大的是数据准备的部分&#xff0c;通常的代码…