数据结构每日一题day12(链表)★★★★★

  1. 数据结构每日一题day12(链表)★★★★★

题目描述:采用头插法在头指针L处建立一个带头结点的单链表,输入-1表示结束结果返回建立的单链表。

算法思想:

1.初始化头结点:创建头结点,并使其指针域初始化为NULL。

2.循环插入元素:

不断接收用户输入的整数值,若输入为-1则停止。

为新元素动态分配结点空间,将数据存入结点。

使用头插法将新结点插入头结点之后。

返回链表:最终返回头指针L。

复杂度分析:

时间复杂度:O(n)

空间复杂度:O(n)

代码实现:

cpp 复制代码
#include <stdio.h>
#include <stdlib.h>

typedef struct LNode {
    int data;               // 数据域
    struct LNode *next;     // 指针域
} LNode, *LinkList;

LinkList CreateList_HeadInsert() {
    LinkList L = (LinkList)malloc(sizeof(LNode));  // 创建头结点
    L->next = NULL;                               // 初始为空链表
    LNode *s;                                     // 用于创建新结点
    int x;                                        // 用户输入的值

    printf("请输入元素(输入-1结束):");
    scanf("%d", &x);
    while (x != -1) {
        s = (LNode*)malloc(sizeof(LNode));        // 创建新结点
        s->data = x;                              // 存入数据
        s->next = L->next;                        // 新结点指向原首结点
        L->next = s;                              // 头结点指向新结点
        scanf("%d", &x);                          // 继续输入
    }
    return L;                                     // 返回头指针
}
相关推荐
m0_629494732 小时前
LeetCode 热题 100-----26.环形链表 II
数据结构·算法·leetcode·链表
壹号用户2 小时前
用队列实现栈
数据结构·算法
做人求其滴2 小时前
面试经典 150 题 380 274
c++·算法·面试·职场和发展·力扣
daad7772 小时前
记一组无人机IMU传感器数据
算法
计算机安禾2 小时前
【c++面向对象编程】第42篇:模板特化与偏特化:为特定类型定制实现
开发语言·c++·算法
小O的算法实验室2 小时前
2026年KBS,流形感知强化学习差分进化算法+不规则3D无人机路径规划,深度解析+性能实测
算法·智能算法·智能算法改进
玖釉-3 小时前
C++ 中的循环语句详解:while、do...while、for、嵌套循环与循环控制
开发语言·c++·算法
不做无法实现的梦~3 小时前
运动控制系统复习一览-----常考题目总结版本
算法
小短腿的代码世界3 小时前
信号路由风暴:Qt算法交易系统的高频信号分发架构
qt·算法·架构
阿文的代码库3 小时前
一文读懂GROUP BY 1,2 VS GROUP BY column_1, column_2 的区别
算法