算法习题---线性表之单链表逆序打印(代码片段)

ssyfj ssyfj     2022-12-27     711

关键词:

一:题目

逆序打印单链表中的数据,假设指针指向单链表的开始结点

二:思路

1.可以使用递归方法,来进行数据打印
2.可以借助数组空间,获取长度,逆序打印数组
3.若是可以,对链表数据使用头插法,逆序排列,然后正序打印即可

三:算法实现(这里使用方法一:递归实现简单易懂)

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>

#define MAXSIZE 10

#define OK 1
#define ERROR 0

typedef int Status;

typedef struct Node 

    int data;
    struct Node* next;
LNode,*LinkList;

//初始化链表,带有头结点
Status InitList(LinkList* L)

    LNode* p,*q;

    //初始化头结点
    *L = (LinkList)malloc(sizeof(LNode));
    if (*L == NULL)
        return ERROR;
    (*L)->next = NULL;
    p = *L;

    //头插法插入数据1-10,也就是说创建后的链表数据是由10-1的
    for (int i = 0; i < MAXSIZE; i++)
    
        q = (LNode*)malloc(sizeof(LNode));
        q->data = i + 1;
        q->next = p->next;
        p->next = q;
    

    return OK;


void InvertPrint(LinkList L)

    if (L!=NULL)
    
        InvertPrint(L->next);
        printf("%d->", L->data);
    


int main()

    LinkList L;
    //初始化链表数据
    InitList(&L);
    //打印数据
    InvertPrint(L->next);

    system("pause");
    return 0;

技术分享图片

 

数据结构(线性表之单链表)(代码片段)

文章目录🥇为何要使用链表🥇单链表是什么单链表的数据存储方式🥇单链表之创建链表🥇单链表之打印链表🥇单链表之计算链表长度🥇单链表之增删查改单链表之头插法单链表之尾插法单链表之把一个... 查看详情

数据结构线性表之实现单链表(代码片段)

数据结构线性表之实现单链表数据结构线性表之实现单链表相关文章单链表定义单链表相关操作数据结构线性表之实现单链表相关文章数据结构线性表之概念(一)数据结构线性表之抽象基类(二)数据结构线性表之实现顺序表(三)数... 查看详情

数据结构与算法-线性表之循环链表(代码片段)

前言:前面几篇介绍了线性表的顺序和链式存储结构,其中链式存储结构为单向链表(即一个方向的有限长度、不循环的链表),对于单链表,由于每个节点只存储了向后的指针,到了尾部标识就停止了向后链的操作。也就是说... 查看详情

算法习题---线性表之数组主元素查找(代码片段)

一:题目主元素是指:一个数在数组中出现的次数超过数组长度的一半,那么这个数就是数组元素的主元素。例如:0,5,5,3,4,5,5,5,5,9这里面元素5有6个超过了一半,所以就是主元素使用一种高效率的方法找出数组A的主元素,若有... 查看详情

算法习题---线性表之数组实现循环移动(代码片段)

...组R中,试设计一个在时间和空间两方面都尽可能高效的算法,将R中保存的序列循环左移p(0<p<n)个位置,即把R中的数据序列由(x0,x1,…,xn-1)变换为(xp,xp+1,…,xn-1,x0,x1,…,x)。二:思考要实现R中... 查看详情

算法习题---线性表之控制变量个数获取数据最小值(代码片段)

...度为N,另给一个int型变量i,要求只用上述变量,写一个算法,找出N个整数中的最小者,并且要求不能破坏数组数据。二:解题思路i作为变量,这个变量的百位用于储存最小值地址,十位用来储存最小值,个位用于当前指向的... 查看详情

线性表之单链表(代码片段)

在学完线性表之后,总结一下顺序表的优缺点优点无须为元素之间的逻辑结构增添额外的储存空间,自成一体。随机存取,十分方便。缺点空间利用率不高,容易造成“碎片”。插入删除操作需要移动大量的元素。当线性... 查看详情

数据结构学习总结线性表之单链表(代码片段)

   一,回忆链表  链表,别名链式存储结构或单链表,用于存储逻辑关系为"一对一"的数据。与顺序表不同,链表不限制数据的物理存储状态,换句话说,使用链表存储的数据元素,其物理存储位置是随机的。&nbs... 查看详情

数据结构之单链表(代码片段)

...构3.定义单链表结构代码实现4.单链表的增删改查4.1单链表之尾插4.1.1单链表之开辟空间4.1.2单链表之打印值4.2单链表之头插4.3单链表之尾删4.4单链表之头删4.5单链表之查链表长度4.6单链表之判断链表是否为空4.7单链表之查找某一... 查看详情

数据结构线性表之实现单循环链表(代码片段)

数据结构线性表之实现单循环链表数据结构线性表之实现单循环链表相关文章单循环链表单循环链表定义数据结构线性表之实现单循环链表相关文章数据结构线性表之概念(一)数据结构线性表之抽象基类(二)数据结构线性表之实... 查看详情

数据结构与算法-线性表之静态链表(代码片段)

前言:前面介绍的线性表的顺序存储结构和链式存储结构中,都有对对象地引用或指向,也就是编程语言中有引用或者指针,那么在没有引用或指针的语言中,该怎么实现这个的数据结构呢?一、简介  定义:用数组代替指针... 查看详情

线性表之链表(代码片段)

单链表也是一种链式存取的线性表,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的,以next指针指向下一个节点而链接起来,相比于顺序表,链表有着快速增加,删除节点的优势,其节点... 查看详情

数据结构之顺序表(代码片段)

...之销毁空间综合SeqList.h文件内容SeqList.c文件内容前言讲完算法效率,就正式开始我们的数据结构 查看详情

数据结构与算法-线性表之双向链表(代码片段)

参考博客:http://www.cnblogs.com/skywang12345/p/3561803.htmlhttps://blog.csdn.net/howlaa/article/details/385132351、概述线性表是一种线性结构,由数组、单项链表和双向链表组成,这里讲讨论双向链表的理论知识和实现代码。双向链表和单项链表类... 查看详情

02线性表之顺序表(代码片段)

...“删除”5.5内存销毁5.6“改”5.7“查”6.顺序表相关OJ练习题6.1原地移除元素6.2合并两个有序数组1.本章重点1.线性表概念2.顺序表实现3.顺序表相关O 查看详情

线性表之顺序表(代码片段)

...中以数组形式保存,是一组连续的内存空间。顺序表基本算法:构造一个空的线性表://初始化线性表STATUSInitList(Sqlist&L)//置表长为0L.length=0;returnOK;返回指定元素位置://定义 查看详情

算法与数据结构单链表的增删改查逆序打印与输出合并有序链表(代码片段)

最近博主在B站学习算法与数据结构,视频链接:https://www.bilibili.com/video/BV1E4411H73v?p=23这是一道课后练习,题目是:合并两个有序的单链表,使合并后的链表依然有序。代码如下,合并部分的代码是mergeTwoSingleLinkedList:1importjava.ut... 查看详情

线性表之单链表实现

for(循环)还是while(循环)循环之后,i和条件值相等。#include<stdio.h>#include<malloc.h>#include<stdlib.h>typedefstructnode{ intdata; structnode*next;}NODE,*PNODE;PNODEcreateList(PNODE);voidtravelList(PNO 查看详情