创建一个链表

C语言来实现链表创建 前言 链表是数据结构中很重要的内容,要想学会数据结构,首先要了解链表 链表的基本知识 1,链表的构成 链表是由一个头指针和一个个节点构成的,如图: 而节点则是一个个结构体,包含数据域和指针域两部分,其中,指针域存储的是指向下一个节点的指针 2,对于链表的操作 1,创建链表 2,初始化链表 3,遍历链表 4,对于链表进行增删查等操作 C语言对于链表的代码的实现 1,创建结构体并命名 创建链表前需要先创建结构体作为节点和头指针: typedef struct Node //typedef方法函数可以对于st 阅读详情

1,用头部插入法创建一个链表:

#include <stdio.h>
#include <stdlib.h>
#define MAX(X,Y) (X>Y?X:Y)
#include <math.h>
//头部插入法创建一个包含5个元素的链表,从最后一个元素开始依次插入到头部
typedef struct S//创建一个链表元素
{
    int data;//数据域
    struct S* p;//地址域,指向下一个元素的地址
}S;
int main()
{
    S* head = (S*)malloc(sizeof(S));//创建一个空链表
    head->p = NULL;
    int i = 0;
    int n = 5;
    int input = 0;
    for(i = 0;i < n;i++)//循环5次,创建五个元素
    {
       S* e = (S*)malloc(sizeof(S));//给元素申请一个空间,并把空间地址保存下来
       e->p = head->p;//把头结点的地址域值赋值给该元素地址域
       head->p = e;//再把该元素的地址给头结点
       scanf("%d",&input);//输入你想给元素数据域data赋的值
       e->data = input;//给元素赋值,创建完成!
    }
    return 0;

}

2,用尾部插入法创建链表

#include <stdio.h>
#include <stdlib.h>
#define MAX(X,Y) (X>Y?X:Y)
#include <math.h>
//尾部插入法创建一个包含5个元素的链表,从一个开始元素依次插入到头部
typedef struct S//创建一个链表元素
{
    int data;//数据域
    struct S* p;//地址域,指向下一个元素的地址
}S;
int main()
{
    S* head = (S*)malloc(sizeof(S));//创建一个空链表
    head->p = NULL;
    int i = 0;
    int n = 5;
    int input = 0;
    S* tmp = head;//创建一个临时指针变量,使这个指针始终指向最后一个元素
    for(i = 0;i < n;i++)//循环5次,创建五个元素
    {
       S* a = (S*)malloc(sizeof(S));//给元素申请一个空间,并把空间地址保存下来
       a->p = tmp->p;//把头结点的地址域值赋值给该元素地址域
       tmp->p = a;//再把该元素的地址给头结点
       tmp = a;//把头结点的指针指向该元素,下次循环的时候就是新插入的元素和这个元素交换地址
       scanf("%d",&input);//输入你想给元素数据域data赋的值
       a->data = input;//给元素赋值,创建完成!
    }
    return 0;

}

C语言实现链表创建 对链表的认识和理解,链表的一些基础知识,C语言用尾插法创建链表。 阅读详情

相关推荐

用C++编写单链表类模板,实现链表的创建,遍历,链表结点的插入,删除,查找,并建立一个整数链表和一个字符串链表

编写单链表类模板,实现链表的创建,遍历,链表结点的插入,删除,查找,并建立一个整数链表和一个字符串链表。 IntList.h #include<iostream> using namespace std; template<typename T> class intList { protected: struct Node { struct Node* next; T data; }; Node* pFirst; public: intList(); //构造

qq_44620333的博客 5978

如何创建链表?

引言: 最近我们c语言课学到了链表,好多同学都在说:“哇!链表怎么这么难,根本看不懂呀!” 不要怕,在这一篇博客中,我会给你详细讲解每一行代码! 链表: 链表的组成其实很简单,就是由很多结点组成的。 一个结点包含数据域和指针域,数据域用来存放数据,指针域负责指向其他结点,起到链接的作用。 创建链表: 其实创建一个链表也很简单,在我看来,可以分为以下几步: 1.创建头结点。(命名为:head...

白日梦想家的博客 7万+

如何使用C语言创建一个单向链表

如何使用C语言创建一个单向链表标题 #include<stdio.h> #include<stdlib.h> typedef struct list { int nValue; struct list *pNext; }List; List *CreateList() { int num; int value; List *pHead = NULL; List ...

weixin_43964187的博客 2013

链表的创建与使用

链表的基本介绍与使用

m0_74214501的博客 3598

四种创建单链表的方法

学习了这么久的数据结构,终于把链表吃透啦,下面是我整理的四种创建单链表的的方法,以及一些非常容易犯的错误,让我们一起来看看吧~

AIGC 1万+

【优化调度】基于混合整数线性规划的电力系统机组组合优化(Matlab实现)

本文详细介绍了基于混合整数线性规划(MILP)的电力系统机组组合优化方法,通过Matlab实现高效调度决策。内容涵盖目标函数构建、约束条件设置及求解器调优,帮助降低发电成本并提升系统稳定性。适用于电力系统调度员和能源优化研究人员,实现从理论到实践的完整解决方案。

weixin_29050271的博客 585

创建一个python链表

链表是一种由一系列节点组成的数据结构, 每个节点都有指向下个节点的指针。这种结构就不需要连续的内存去存储,但只要找到起始节点(头节点),整个链表的数据都可以被依次访问。 在python3中,创建链表的过程可以粗略分为定义单节点,定义空链表,向空链表填充数据几个步骤 (来自https://www.educative.io/edpresso/how-to-create-a-linked-list-in-python) 定义单节点: class Node: # constructor def __init

yuriao_yu的博客 5017

CS5523实战:如何用国产芯片完美替代LT8911设计MIPI转eDP电路(附原理图)

本文详细介绍了使用国产芯片CS5523完美替代LT8911进行MIPI转eDP电路设计的实战经验。文章从芯片选型、核心特性对比入手,深入剖析了电源时钟设计、MIPI/eDP接口的PCB布局与信号完整性要点,并提供了完整的原理图参考和调试排错指南,为硬件工程师实现国产化替代提供了清晰可行的方案。

yhn4567890的博客 1139

如何创建一个链表,并实现基本的链表操作

定义一个链表在c++中需要创建一个结构体,结构体包含一个指针域和一个数据域,数据域很简单,可以是数字、字母、字符串等,指针域代表指针,用来指向链表的下一个节点.对于c++来说,链表的操作需要调用指针,是相当麻烦的,而python不需要,只需要一个简单的赋值操作就可以,例如:a = listNode.next. 链表的基本操作有以下几个方面: 下面就写一下链表的创建以及常见的操作, 首先是创建一个空链表: class Node(object): def __init__(self, value = N

AWhiteDongDong的博客 1745

超详细!动态规划详解分析(典型例题分析和对比,附源码)

为啥要使用动态规划?什么时候使用动态规划?以下是我的一些理解和心得,如果你感兴趣,就接着往下看吧。 对您有帮助的话记得给我点个赞哟! 动态规划的基本思想 动态规划(Dynamic Programming,DP)算法通常用于求解某种具有最优性质的问题。在这类问题中,可能会有许多可行解,每一个解都对应一个值,我们希望找到具有最优值的解。 动态规划算法与分治法类似,其基本思想也是将待求解的问题分解成若干个子问题,先求解子问题,然后从这些子问题的解中 得到原有问题的解。与分治法不同的是,动态规划经分解后得到的子问题

qq_44398094的博客 8万+

Android应用加固脱壳实战:从爱加密原理到Frida内存Dump与修复

在移动应用安全领域,代码加固与动态加载是保护核心逻辑的关键技术。其原理在于通过修改应用启动流程,将原始DEX加密隐藏,并注入包含解密逻辑的壳DEX,实现运行时动态加载。这项技术的核心价值在于防止应用被逆向分析、二次打包或恶意篡改,广泛应用于金融、游戏等高安全要求场景。对于安全研究、漏洞挖掘或历史版本审计,掌握脱壳技能至关重要。本文聚焦于**爱加密**等主流加固方案,深入探讨如何利用**Frida**框架在内存中精准捕获解密后的DEX数据,并解决脱壳后常见的签名校验等运行问题,提供一套从原理到实践的完整攻防思

weixin_28716443的博客 489

C++创建一个链表

这个是在参加面试的时候遇到的题目,说句实话,我当时不懂。后面查了资料,里面写的比较仔细就不多说了。

weixin_44317873的博客 929

用 ABAP LSMW 的 Standard Batch / Direct Input 稳准快迁移物料主数据:从 MM01 录制到 RMDATIND 直入的落地指南

本文详细介绍了SAP数据迁移中LSMW工具的使用方法,重点分析了物料主数据迁移的两种主要路径:Batch Input Recording和Standard Batch/Direct Input。前者通过录制事务操作实现快速起步,后者通过调用预置接口程序实现稳定高效的批量处理。文章深入解析了Standard Direct Input的具体实施步骤,包括对象属性设置、源结构定义、字段映射规则等关键环节,并特别强调了迁移前的准备工作(如编号策略、视图策略等)对项目成功的重要性。通过对比两种方法的优缺点,为不同业务

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 151

c语言 创建一个空链表,C语言 创建一个链表.docx

C语言 创建一个链表C语言 创建一个链表, 并将数据倒序输出代码如下:#include#include#include#define ok 1#define Elemtype inttypedef int status;typedef struct sql{Elemtype length;Elemtype data;struct sql *next;}SQL;SQL L;SQL *head...

weixin_36057741的博客 2830

C#调用opencv的dll

opencv算法和界面配合,刚入职的时候尝试过,利用的MFC,调试起来很痛苦。 后来基本都没怎么用界面,DOS的黑窗口,opencv自带的显示界面及滑动条凑合着调试用。 最近有点时间,刚好双十一在一个视觉群里看到了一个讲C#调用opencv的dll的课程,鉴于群主也是那门课的讲师,在平时解答群员的问题的时候很细心,能力也很强,因此有了这篇文章。 根据相机不同动态调用相机默认的属性...

Learning by doing 2972

材料仿真软件:Quantum Espresso_(15).声子与振动模式计算

通过上述步骤和代码示例,您应该能够使用 Quantum Espresso 进行声子与振动模式的计算。声子计算是材料科学研究中的重要工具,可以帮助我们更好地理解和设计材料的性能。希望本节内容对您有所帮助。

kkchenjj的博客 1178

Java创建一个链表

Java创建一个链表

a402498234的博客 1254

华为OD机试 - 小扇和小船的数字游戏 - 二进制(Python/JS/C/C++ 2024 C卷 200分)

二进制表示:任何数 n 的二进制表示中,要找到下一个有相同数量的1的数,我们需要在最低位的0后面的最低位的1进行操作。右侧交换法则:找到右侧的第一个0,位于第一个1的左边,将这个0变成1(提升这个位),并将这个1变成0(下移这个位)。调整尾部1:为了得到最小的数,将所有低于已交换的1的位重置,使得所有1尽可能靠右。

学Java,找哪吒 1161

如何创建一个最简单的链表

链表是一种常见的存储数据的方式,可以让我们方便地添加、删除、改动和查找数据。本片文章教你如何创建一个简单的链表,并实现链表数据的输出。

weixin_45885610的博客 370

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

【C语言】创建一个链表

struct list { int data; struct list *next; }; int main() { struct list *head, *p; int n = 0; int num = 0; head = NULL; p = NULL; printf("请输入n个数:"); scanf("%d", &n); for (int i = 0; i &l...

ZD_012的博客 363

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

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

上一篇: 动态内存管理 malloc calloc realloc
下一篇: 单循环链表和双向循环链表
any_ways
博客等级 码龄5年 94粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值