动态链表

// 动态链表0.cpp : 定义控制台应用程序的入口点。
//


#include "stdafx.h"

#define NULL 0
#include<iostream>


using namespace std;




struct work
{
int num;
float pay;
char sex;
work *next;
};
int n;


int main()
{
work *creat(void);
void *print (work * );
work *reserch(work *,int);
work *insert(work *,work *);
work *del(work *,int);
work *putout(work *, int);


work *head, *wage;
int reserchsum,del_num,a;


cout<<"开始建表,依次输入要num pay sex ,以0 0 0结束。"<<endl;
head=creat();


cout<<"输出所建链表"<<endl;
print (head);




cout<<"输入要查找的节点"<<endl;


cin>>reserchsum;


reserch(head,reserchsum);




cout<<"输入要插入的节点:"<<endl;
wage=new work;
cin>>wage->num >>wage->pay>>wage->sex ;
while(wage->num!=0)


{
head= insert(head,wage);
print(head);
cout<<"输入要插入的节点,以0 0 0结束。"<<endl;
wage=new work;
cin>>wage->num >>wage->pay>>wage->sex ;
}


cout<<"请输入要删除的节点"<<endl;
cin>>del_num;
head=del(head,del_num);
print(head);

do
{
cout<<"输入要输出的节点"<<endl;
cin>>a;
putout(head,a);
head=head->next;
}while(a!=0);


return 0;
}




work *creat( ) //建表
{ work *head;


work *p1,*p2;


n=0;


p1=p2=new work;


cin>>p1->num>>p1->pay>>p1->sex;


head=NULL;
while(p1->num!=0)
{
n=n+1;
if(n==1)
head=p1;
else
p2->next=p1;
p2=p1;


p1=new work;


cin>>p1->num>>p1->pay>>p1->sex;
}
p2->next=NULL;


return(head);}


void *print (work *head)//输出
{work *p1;


p1=head;
do
{cout<<p1->num<<" "<<p1->pay<<" "<<p1->sex<<endl;
p1=p1->next;}
while(p1!=NULL);




return 0;
}




work *reserch( work *head,int reserchnum)//查找
{work *p1;
p1=head;
while(reserchnum!=p1->num )
{
p1=p1->next ;
}


if(reserchnum==p1->num)
{
cout<<p1->num<<" "<<p1->pay<<" "<<p1->sex<<endl;

}
else


{


cout<<"can't find"<<endl;
}



return (head);}




work *insert(work *head ,work *wage )//插入


{
work *p1,*p2,*p0;
p0=wage;
p1=head;


while ((p0->num>p1->num)&&(p1->next!=NULL) )


{p2=p1;
p1=p1->next;}


if(p0->num<=p1->num)


{ if(head==p1)
head=p0;
else;
p2->next=p0;
p0->next=p1;
}


else
{p1->next=p0;p0->next =NULL;}
n=n+1;


return(head);
}


work *del(work *head,int del_num)//删除
{
work *p1,*p2;
p1=head;
while(del_num!=p1->num&&p1->next!=NULL)
{ p2=p1;p1=p1->next ;
}
if(del_num==p1->num )
{if(del_num==head->num )


head=p1->next ;


else
p2->next=p1->next ;
cout<<"delete"<<del_num<<endl;
n=n-1;
}
else
cout<<"can't find"<<endl;
return (head);}




work *putout(work* head,int a)//遍历
{
work *p;
p=head;
while(p->next!=0)
{
if(p->num==a)
{ cout<<p->num<<p->pay<<p->sex<<endl;break; }
else
{cout<<" can't find."<<endl;break;}

}


return head;
}


团子杂记:SAP收入确认工具RAR(Revenue Recognition&Reporting)在新收入准则下的应用 SAP收入确认工具RAR知识分享 阅读详情

相关推荐

一分钟学会MATLAB-数据清洗(含完整代码)

数据清洗是数据分析过程中的一个重要步骤,目的是提高数据的质量,以便进行更有效的分析。% 删除超出阈值的行。% 用线性插值填充缺失值。% 删除包含缺失值的行。% 找到缺失值的位置。% 可视化数据,识别异常值。缺失值是数据清洗中常见的问题。通过以上步骤,你可以有效地清洗数据,使其准备好进行后续的分析和建模。

2402_87132195的博客 3316

C语言 动态链表

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言项目场景:问题描述:原因分析:解决方案:一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 大家好~在学习C语言的过程中,动态链表的创建总是会把我弄得有点晕(思路是有的,但是写完代码之后就很容易出错,于是今天想把我在链表创建过程中出现的问题给大家分享一下,也希望大家以后遇到了相关问题就) 项目场景: 提示:这里简述项目相关背景: 例如:项目场景:示例:通过蓝牙芯片(HC-05)与手机 APP 通信,每隔 5s

张小婷的博客 1万+

别再硬编码了!Flowable工作流动态审批人配置全解析(Spring Boot集成版)

本文深入解析Flowable工作流在Spring Boot中的动态审批人配置技术,通过角色、部门等变量实现审批流程的灵活设计。文章详细介绍了架构原理、前端配置映射、动态候选组解析及查询优化方案,帮助企业提升审批流程的适应性和维护效率。

weixin_30919571的博客 134

静态链表和动态链表的区别

静态链表和动态链表的区别: 静态链表和动态链表是线性表链式存储结构的两种不同的表示方式。 1、静态链表是用类似于数组方法实现的,是顺序的存储结构,在物理地址上是连续的,而且需要预先分配地址空间大小。所以静态链表的初始长度一般是固定的,在做插入和删除操作时不需要移动元素,仅需修改指针。 2、动态链表是用内存申请函数(malloc/new)动态申请内存的,所以在链表的长度上没有限制。动态链表

我的博客 5万+

【凌智视觉模块】rv1106 部署 pp-humseg 模型

人像分割技术实现摘要 人像分割是利用计算机视觉技术将图像/视频中的人物与背景分离的像素级处理技术。凌智视觉模块基于RV1106芯片开发,支持高效视觉模型部署。当前主流方法包括PP-HumanSeg、BiSeNet等深度学习模型,其中PP-HumanSegV2以96.63% mIoU精度和63FPS手机端速度成为SOTA方案。 实现流程包含: 初始化RKNN模型后端 图像预处理(尺寸调整、颜色空间转换) 执行模型推理 后处理(概率解码、动态阈值分割、形态学优化) 代码实现要点: 使用RKNPU2Backend

m0_50786932的博客 985

配置xen上VM混杂模式,使其能捕获物理网络流量

本文目的:配置VM和xen相应的物理网卡(pif)和虚拟网卡(vi

LeoDuo的专栏 3720

动态链表详解:

详细讲解动态链表的建立过程与链表的原理,深度理解链表的基本组成结构

wwx1239021388的博客 5840

【算力网络】算力知识

尽管算力这个词在近年来很“火”,但其背后的含义,却很少有人真正了解

qq_42809645的博客 1万+

静态链表和动态链表

 动态链表与静态链表一.  静态链表在某些语言中指针是不被支持的,只能使用数组来模拟线性链表的结构.在数组中每个元素不但保存了当前元素的值,还保存了一个”伪指针域”,一般是int类型,用于指向下一个元素的内存地址.#define MAXSIZE 100;    typedef struct{      ElemType data;      int cur; 

陶野的窝 1万+

Cadence PSpice 模型1:基于自带库新建二极管的PSpice模型图文教程

使用Cadence PSpice进行电路图的仿真时,难免会遇到软件自带库中没有合适的元器件的情况,这就需要设计师自己新建元器件模型,本文详细介绍使用PSpice软件修改自带库的元器件模型的参数以得到自己需要的PSpice模型库的方法。

fydar的博客 4413

华为OD机试 - 报文响应时间 - 贪心算法、位运算(Python/JS/C/C++ 2024 E卷 200分)

贪心算法是在每一步选择中都做出当前最优的选择,期望通过局部最优解推导出全局最优解的算法。

学Java,找哪吒 1757

动态链表详解

链表 目录: 1.链表的简介 2.链表的实现 3.动态链表 4.链表的插入和删除 5.双链表 1.链表的简介 链表是一种常见的数据结构,我们经常会使用数组来存放数据,但使用数组时,要先指定数组的大小,如果向这个数组加入过多的元素,则会超出,导致无法保存数据;如果数据太小,又会非常浪费内存空间。 所以,我们希望有一种存储方式,其储存的元素个数是不受限定的,当进行添加元素时,存储的个数也会增加,这种储存方式就是链表。 在链表中,有一个头指针head变量,用这个指针变量保存第一个元素的地址,其中,这个元素包括两

itszok的博客 8903

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

静态链表与动态链表

转载自 https://blog.youkuaiyun.com/zhengqijun_/article/details/78192888 静态链表和动态链表的区别: 静态链表和动态链表是线性表链式存储结构的两种不同的表示方式。 1、静态链表是用类似于数组方法实现的,是顺序的存储结构,在物理地址上是连续的,而且需要预先分配地址空间大小。所以静态链表的初始长度一般是固定的,在做插入和删除操作时不需要移动元素,仅...

knaha的博客 3097

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

创建动态链表

c语言创建动态链表,一口气搞懂「链表」,动态链表的实现+源码

weixin_69737466的博客 875

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

C语言实现动态链表

链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 动态链表的C语言实现 结构体定义已经函数声明 节点结构体定义 typedef struct SNode{ void *pdata; ...

weixin_42617375的博客 3019

一文详解动态链表和静态链表的区别

一文详解动态链表和静态链表的区别

大道至简,求同存异 6003

C 单向链表之动态链表:尾插法

C 单向链表之动态链表创建(尾插法) 动态链表 静态链表的意义不是很大,主要是因为数据存储在栈上,栈的存储空间有限,不能动态分配。所以链表要实现存储的自由,要动态申请堆里的空间。 ...

Bryan_QAQ的博客 1542

动态建立链表

所谓动态链表是指在程序执行过程中从无到有地建立起一个链表,既一个一个地开辟结点和输入各结点的数据,并建立起前后相连的关系。 例题: #include using namespace std; #define NULL0     struct student {long num; float score; struct student *next; }; int main()

a514223963的专栏 1万+

动态链表的建立、链表的插入、删除

动态链表的建立 #include <stdio.h> #include <stdlib.h> #define LEN sizeof(struct Student) struct Student { long num; float score; struct Student *next; }; int n; //全局变量 struct Student creat(void) //定义建立动态链表的函数,次函数返回指向链表头的指针。 { s

C_Y_525的博客 514

动态链表的实现(C语言)

记录学习第四天 今天复习一下动态链表的实现 C语言实现链表 一定会有着结构体和结构体指针; 那什么是动态链表; 打个比方,如果我想做一个学生成绩管理系统,但我不确定学生的人数,学生的信息可以用一个结构体来表示,由于不确定人数,我们如果用结构体数组,那数组的大小一定要够大,才能不出现数组元素不够用的情况,但是,剩下的结构体占着内存又是一种浪费,所以,就有了链表; 链表就是,我要记录一个学生的信息...

weixin_46726346的博客 4305

静态链表和动态链表 区别

使用C语言描述静态链表和动态链表 静态链表和动态链表是线性表链式存储结构的两种不同的表示方式。 静态链表的初始长度一般是固定的,在做插入和删除操作时不需要移动元素,仅需修改指针,故仍具有链式存储结构的主要优点。 动态链表是相对于静态链表而言的,一般地,在描述线性表的链式存储结构时如果没有特别说明即默认描述的是动态链表。 下面给出它们的简单实现,关于线性表更为详尽的C语言的实现,可以参考http://www.cnblogs.com/choon/p/3876606.html 静态链表 .

微电子学与固体电子学-俞驰 737

动态链表排序

<br />呵呵,//动态链表排序 #include <stdio.h> #include <stdlib.h> #include <malloc.h> #define LEN sizeof(struct order) struct order { int num; struct order* next; }; int main(void) { int M, i, j; struct order *head; struct order *p1, *p2, *p3;

我辈皆愚 1796

C语言——静态链表和动态链表

超详细的静态链表和动态链表

qq_59990833的博客 1223

C 语言动态链表

动态链表是通过结点(Node)的集合来非连续地存储数据,结点之间通过指针相互连接。动态链表本身就是一种动态分配内存的数据结构。每个结点都包含数据部分和指向下一个节点的指针。这种结构允许在运行时动态地添加、删除或修改结点,而不需要像数组那样担心容量问题。

qq_68495605的博客 1749
下一篇: 动态链表
S孙大宝
博客等级 码龄15年 55粉丝 65原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值