当前位置: 首页 > news >正文

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

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

算法思想:

1.初始化链表:创建一个头结点(不存储实际数据),头指针 L 指向该头结点。初始时,头结点的 next 指针为 NULL,尾指针 tail 也指向头结点。

2.循环输入数据:从用户输入中读取数据,直到输入 -1 为止。

对于每个非 -1 的数据,创建一个新节点,并将数据存入新节点的数据域。

将新节点插入到尾节点之后(即 tail->next = newNode)。

更新尾指针,使其指向新节点(即 tail = newNode)。

3.结束处理:输入 -1 后,将尾节点的 next 指针置为 NULL,表示链表结束。

4.返回链表:返回头指针 L,即建立的单链表。

复杂度分析:

时间复杂度:O(n)

空间复杂度:O(n)

代码实现:

#include <stdio.h>
#include <stdlib.h>// 定义单链表结点结构
typedef struct LNode {int data;           // 数据域struct LNode *next; // 指针域
} LNode, *LinkList;// 尾插法创建单链表
LinkList CreateList_Tail() {LinkList L = (LinkList)malloc(sizeof(LNode)); // 创建头结点L->next = NULL;                              // 头结点的next初始化为NULLLNode *tail = L;                             // 尾指针初始指向头结点int x;printf("请输入链表元素(以-1结束):\n");scanf("%d", &x);while (x != -1) {LNode *p = (LNode *)malloc(sizeof(LNode)); // 创建新结点p->data = x;                               // 赋值p->next = NULL;                            // 新结点的next为NULLtail->next = p;                            // 尾结点的next指向新结点tail = p;                                  // 更新尾指针scanf("%d", &x);}return L; // 返回头结点
}// 打印单链表
void PrintList(LinkList L) {LNode *p = L->next; // 跳过头结点printf("链表元素:");while (p != NULL) {printf("%d ", p->data);p = p->next;}printf("\n");
}int main() {LinkList L = CreateList_Tail(); // 创建链表PrintList(L);                   // 打印链表return 0;
}

相关文章:

  • PostgreSQL数据库版本升级
  • Blender插件 三维人物角色动作自动绑定 Auto-Rig Pro V3.68.44 + Quick Rig V1.26.16
  • 非线性现实:绘制复杂系统的图景及AI推理
  • Springboot使用jwt实现登录认证
  • DeepSeek提示词技巧
  • Android Studio Profiler
  • SICAR 标准功能块 FB3352 (MODE)工作模式功能块
  • Nacos 3.0 正式发布:MCP Registry、安全零信任、链接更多生态
  • 无锡哲讯科技:引领企业数字化转型的SAP实施专家
  • C# 导入EXCEL 报错外部表不是预期的格式错误指南方案
  • 前缀和 后缀和 --- 寻找数组的中心下标
  • Idea 如何配合 grep console过滤并分析文件
  • g4f api报错:ImportError: cannot import name ‘model_validator‘ from ‘pydantic‘
  • SELinux 从理论到实践:深入解析与实战指南
  • 存储过程补充——定义条件、处理程序及游标使用
  • shell编程基础(第x篇:子进程知识点汇总)
  • MySQL日志详解
  • Spring事务开发经验 回滚和不回滚?
  • AI应用实战:Excel表的操作工具
  • 51la 统计登录日志-悟空统计成为高效的选择
  • 广东省副省长刘红兵跨省调任湖南省委常委、宣传部长
  • 朝鲜新型驱逐舰“崔贤”号进行多项武器试验
  • 俄外长:俄将在不损害伙伴关系前提下发展对美关系
  • 美国参议院投票通过戴维·珀杜出任美国驻华大使
  • IMF前副总裁朱民捐赠1000万元,在复旦设立青云学子基金
  • 众信旅游:去年盈利1.06亿元,同比增长228.18%