动态链表

动态链表(一)概述及单链表 一、动态链表的产生 前面的博客我们简单了介绍了线性表,而链表是线性表的一种,所谓的线性表包含顺序线性表和链表,顺序线性表是用数组实现的,在内存中有顺序排列,通过改变数组大小实现。而链表不是用顺序实现的,用指针实现,在内存中不连续。意思就是说,链表就是将一系列不连续的内存联系起来,将那种碎片内存进行合理的利用,解决空间的问题。 说的通俗一点,就是链表的出现弥补了顺序线性表对空间的浪费问题,同时他... 阅读详情
// 动态链表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;
}


3GPP LTE/NR信道模型 CDL(Clustered Delay Line):簇延迟线模型,包括CDL-A、CDL-B、CDL-C三个用于NLOS的信道模型,以及CDL-D、CDL-E两个用于LOS的信道模型。 阅读详情

相关推荐

Excel VBA--按某一列拆分数据到多个文件

首先,将需要拆分的sheet命名为“明细”,接下来运行此代码,按提示操作即可。 在这里插入代码片 Sub chaifen() '定义变量类型 Dim sht, sh1, sh2 As Worksheet Dim k, i, j As Integer Dim irow As Integer Dim col As Integer Dim str As String '程序开始是要求输入按哪一列拆分数...

weixin_43650026的博客 5872

C语言 动态链表

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

张小婷的博客 1万+

GraphRAG + Ollama 本地化部署实战:从零搭建知识图谱问答系统

本文详细介绍了如何在本地部署GraphRAG与Ollama,搭建一个完全自主可控的知识图谱问答系统。通过逐步指导环境配置、项目初始化、核心设置修改以及源码适配,成功将GraphRAG从依赖云端OpenAI API转向本地Ollama服务,并选用qwen2.5:7b和nomic-embed-text模型。该方案有效解决了数据隐私与持续API成本问题,特别适合中小企业构建内部知识库或智能客服系统。

x2y3z4a5b的博客 918

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

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

我的博客 5万+

阻抗匹配与史密斯(Smith)圆图

在找到点B和B'后,我们就能够测量A'到B和B'到D的弧长,前者就是C的归一化电纳值,后者为L的归一化电抗值。当然,表面上看新的点好像是一个不同的阻抗,实际上Z和1/Y表示的是同一个元件(这个新值在圆图上呈现为一个不同的点,而且反射系数也不相同,依次类推)。出现这种情况的原因是我们的图形本身是一个阻抗图,而新的点代表的是一个导纳。这个方程是在复平面(Γr, Γi)上、圆的参数方程(x - a)² + (y - b)² = R²,它以[r/(r + 1), 0]为圆心,半径为1/(1 + r)。

qq_55759599的博客 3961

YOLOv11的嗅觉传感器数据关联-(特殊场景下的气味-视觉联合分析)

摘要 本文探讨了YOLOv11与嗅觉传感器融合的多模态感知技术。通过分析YOLOv11的架构特性与嗅觉传感器的数据特点,提出了三种融合策略:数据级、特征级和决策级融合。系统采用硬件同步方案实现时空对齐,包含视觉采集模块、嗅觉传感模块和边缘计算单元。环境配置基于Python 3.9和PyTorch 2.0,支持实时多模态数据处理。该技术可应用于环境监测、工业检测等场景,突破单一视觉感知的局限性。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 625

动态链表详解:

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

wwx1239021388的博客 5840

4、风险管理、信息安全与信息管理的核心原则

本文深入探讨了风险管理、信息安全与信息管理的核心原则,涵盖Risk IT框架、ISO 31000标准以及信息安全与信息管理的关键原则。通过案例分析与实际应用挑战的解析,帮助组织更好地应对数字化时代的风险与安全问题,实现可持续发展。

bread的博客 120

静态链表和动态链表

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

陶野的窝 1万+

数据库系统概论第五版课后习题答案第十二章

对元组的插入、删除、修改;语义检查的具体做法是,DBMS读取数据字典,检查是否存在与该语句中的表、视图或索引等要创建的对象相同的对象名,检查该用户是否具有创建数据库对象的权限。答:操作系统提供的封锁机制和DBMS的封锁机制在封锁对象、封锁对象的状态、封锁的粒度、及封锁的类型上存在很大的差别,操作系统的封锁机制不能直接应用在DBMS中,DBMS必须重新设计,来满足复杂的封锁需求。数据库的建立和维护包括数据库的初始建立、数据的转换、数据库的转储和恢复、数据库的重组织和重构造以及性能监测分析等功能。

wenling54321的博客 693

微信小程序(云开发) - 实现微信小程序拼团功能+前后台源码/数据库设计,开团参团、自动成团、微信分享链接URL参与拼团、组团人数/倒计时/实时数据、设置拼团人数限制等(拼团退款处理逻辑、订单同步等)

实现微信小程序云开发拼团功能,云开发小程序--微信拼团设计实现,微信小程序实现秒杀、拼团等效果,微信小程序云开发拼团源码完整版 包含前后台和数据库,拼团商城小程序开发,分销,拼团,社群团购,微信小程序—判断参团人数(设置拼团剩余人数数组)拼多多拼团小程序开发,微信云开发教程怎么实现微信小程序云开发拼团功能?云开发如何实现拼团,拼团小程序怎么弄,微信小程序案例:拼团模块,需要朋友助力,详细源码demo示例,如何做拼团功能,云开发小程序如何做拼团功能,外卖电商拼团,仿拼多多拼团,拼团后退款怎么办,拼团后订单管理

🏆 前端领域优质创作者 4627

动态链表详解

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

itszok的博客 8903

2025年下半年网络规划设计师综合知识真题及答案解析

1983年,ARPANet完成技术转型,对此后的 Internet发展全关重要,这一转型是指( ) A.电路交换转向分组交换 B.商业化转型 C.民用化转型 D.从 NCP 协议转向 TCP/IP 答案:D 解析:ARPANet 最初使用 NCP (Network Control Protocol)协议进行主机问通信。1983年1月1日,ARPANet 正式切换到TCP/IP 协议族,为后续Internet的发展奠定了统一协议基础。

鹿鸣天涯 921

静态链表与动态链表

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

knaha的博客 3097

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

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

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

创建动态链表

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

weixin_69737466的博客 875

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

C语言实现动态链表

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

weixin_42617375的博客 3019

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

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

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

大道至简,求同存异 6002

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

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

Bryan_QAQ的博客 1541

动态建立链表

所谓动态链表是指在程序执行过程中从无到有地建立起一个链表,既一个一个地开辟结点和输入各结点的数据,并建立起前后相连的关系。 例题: #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的博客 4304

静态链表和动态链表 区别

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

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

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

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

qq_59990833的博客 1223

动态链表排序

<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 语言动态链表

动态链表是通过结点(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、付费专栏及课程。

余额充值