首页 > 其他分享 >2023-03-21-将指针所在地址传入函数来创建链表的一种写法

2023-03-21-将指针所在地址传入函数来创建链表的一种写法

时间:2023-03-31 12:56:13浏览次数:44  
标签:03 结点 21 value next 链表 DLinkList NULL DNode

如下,通过将指针所在的地址传入函数中即**p的形式,来保证直接对地址进行运算,而不需要再返回一个链表

//双链表

#include <stdio.h>
#include <stdbool.h>
#include <malloc.h>

typedef struct DNode
{
    int data;
    struct DNode *prior,*next;//prior指向上一个结点,next指向下一个结点
}DNode,*DLinkList;

bool InitList(DLinkList *L)//初始化双链表
{
    *L=(DNode *)malloc(sizeof(DNode));//新建一个头结点
    if(*L==NULL)//内存不足分配失败
    {
        return false;
    }
    else
    {
        (*L)->next=NULL;//将头结点的下一个节点设为NULL
        return true;
    }
}

void createDLinkList(DLinkList *L)//尾插法建立双链表
{
    *L=(DLinkList)malloc(sizeof(DNode));
    (*L)->next=NULL;
    DNode *s;
    DNode *e=*L;//e为表尾的结点,此时L就是最后的结点
    int value;
    scanf("%d",&value);
    while(value!=9999)
    { 
        s=(DNode *)malloc(sizeof(DNode));
        s->data=value;
        e->next=s;
        s->prior=e;//s的上一个结点指向e
        e=s;//将e指向s,即最后一个结点
        scanf("%d",&value);
    }
}

int main()
{
    DLinkList L;
    InitList(&L);
    createDLinkList(&L);
    printf("%d",L->next->next->next->data);
    return 0;
}

 

标签:03,结点,21,value,next,链表,DLinkList,NULL,DNode
From: https://www.cnblogs.com/ryuichi-ssk/p/17275924.html

相关文章

  • 202031603210-李震 实验一软件工程准备-简单认识软件工程
    项目目标课程班级博客链接2020级卓越工程师班本次作业要求链接实验一软件工程准备我的课程学习目标1.学会使用博客园进行学习2.了解GitHub的基本操作3.学习并掌握软件工程的相关知识本次作业在哪些方面帮我实现学习目标通过本次实验,我学习了1.Git......
  • Project 'org.springframework.boot:spring-boot-starter-parent:XXX' not found
    问题:Project'org.springframework.boot:spring-boot-starter-parent:XXX'notfound当spring-boot-starter-parent下面的版本报红时并不是这个版本不存在,而是因为idea会默认缓存Maven本地仓库已存在的中的依赖项。只是我们引入的的父依赖版本在本地仓库中不存在,所以就报......
  • 202031607130-杨国周 实验一 软件工程准备—初识软件工程
    实验一软件工程准备项目内容班级博客链接https://edu.cnblogs.com/campus/xbsf/2020CSSE本次作业要求链接https://edu.cnblogs.com/campus/xbsf/2020CSSE/homework/12938我的课程学习目标学习软件工程的基本概念、方法和工具,提高软件开发的质量和效率。本......
  • 202031607202-李锋斌 实验一 软件工程准备 对软件工程的初步认识
    实验一软件工程准备项目内容班级博客链接2023春软件工程2020级计算机科学与技术本次作业要求链接实验一软件工程准备我的课程学习目标学习软件工程的基本概念和方法,提高软件开发能力。本次作业在哪些方面帮我实现学习目标通过完成任务1-任务5,我了解了博......
  • MySQL插入数据报错:1366 Incorrect string value: '\xF0\xA0\xB9\xB3\xF0\xA0...
    [10501]SQLSTATE[22007]:Invaliddatetimeformat:1366Incorrectstringvalue:'\xF0\xA0\xB9\xB3\xF0\xA0...'forcolumnxxxxatrow1是因为MySQL不能识别4个字节的utf8编码的字符,抛出了异常。解决办法将字符类型换成改为utf8mb4数据库:ALTERDATABASE`db_name`C......
  • 【LBLD】如何判断回文链表
    【LBLD】如何判断回文链表判断回文单链表/***Definitionforsingly-linkedlist.*structListNode{*intval;*ListNode*next;*ListNode():val(0),next(nullptr){}*ListNode(intx):val(x),next(nullptr){}*ListNode(intx,......
  • java学习日记20230330-异常
    异常基本概念java语言中,将程序执行中发生的不正常情况称为异常,开发中的语法错误和逻辑错误不是异常;执行中的异常事件可以分为两类error(错误),java虚拟机无法解决的严重问题:如jvm系统内部错误,资源耗尽:StackOverflowError【栈溢出】和OOM(outofmemory)exception:其他因编程错误或......
  • Leetcode19. 删除链表的倒数第 N 个结点
     19. 删除链表的倒数第N个结点自己纯手写第一题,递归有点冗杂,开辟了虚拟头节点,而且要特别注意边界条件(当倒数第n个正好是头节点时)。***Definitionforsingly-linkedlist.*structListNode{*intval;*ListNode*next;*ListNode():val(0),n......
  • Exp3-免杀原理 20202211王宏韬
    目录1.基础问题回答(1)杀软是如何检测出恶意代码的?(2)免杀是做什么?(3)免杀的基本方法有哪些?(4)开启杀软能绝对防止电脑中恶意代码吗?2.实践总结与体会3.实践过程记录3.1环境准备3.1.1安装wine323.1.2安装工具veil3.2正确使用msf编码器,使用msfvenom生成如jar之类的......
  • 每日总结2023-03-30
    今天完成了部分个人界面成果: 实现了fragment跳转到Activity,对于导航栏的颜色变化仍有不懂,对于地图的预加载、实现仍不会实现。登录功能可以实现但未完成。 ......