淮北市网站建设_网站建设公司_交互流畅度_seo优化
2025/12/19 20:01:01 网站建设 项目流程

题目链接:链表的基础操作I

题目描述

构建一个单向链表,链表中包含一组整数数据。输出链表中的所有元素。

要求:

1. 使用自定义的链表数据结构
2. 提供一个 linkedList 类来管理链表,包含构建链表和输出链表元素的方法
3. 在 main 函数中,创建一个包含一组整数数据的链表,然后调用链表的输出方法将所有元素打印出来

输入描述

包含多组测试数据,输入直到文件尾结束。 
每组的第一行包含一个整数 n,表示需要构建的链表的长度。 
接下来一行包含 n 个整数,表示链表中的元素。

输出描述

每组测试数据输出占一行。
按照顺序打印出链表中的元素,每个元素后面跟一个空格。

输入示例

5
1 2 3 4 5
6
3 4 5 6 7 8

输出示例

1 2 3 4 5
3 4 5 6 7 8

提示信息

数据范围:1 <= n <= 1000;
点击查看代码
#include<iostream>
using namespace std;struct ListNode {int val;ListNode* next;ListNode(int x) : val(x), next(nullptr){}
};int main(){int n, val;ListNode* dummyHead = new ListNode(0);while(cin >> n){ListNode* cur = dummyHead;for(int i =0; i < n; i++){cin >> val;ListNode* newNode = new ListNode(val);cur -> next = newNode;cur = cur -> next;}cur = dummyHead;while(cur -> next != NULL){cout << cur -> next -> val << ' ';cur = cur -> next;}cout << endl;}
}
小结

指针

声明int* p;   //指向整数的指针存地址int* p = &x;  //取地址符&获取地址获取地址的值int value = *p;  //使用*符号来访问,解引用数组与指针数组名本质就是指向数组第一个元素的指针int arr[3] = {1, 2, 3};int *ptr = arr;   // 数组名arr就是指向arr[0]的指针指针还可以执行加法、减法等算术操作int arr[5] = {1, 2, 3, 4, 5};int *ptr = arr; // 指向数组的第一个元素int value = *(ptr + 2); // 获取数组的第三个元素(值为3)空指针值(nullptr)用于表示指针不指向任何有效的内存地址。int *ptr = nullptr;   // 初始化为空指针

链表

链表结构定义struct ListNode {int val;  // 存储节点的数据ListNode *next; // 指向下一个节点的指针	ListNode(int x) : val(x), next(nullptr) {}  };构造函数ListNode(int x) : val(x), next(nullptr) {}  // 构造函数,用于初始化节点, x接收数据作为数据域,next(nullptr)表示next指针为空构造函数名称要和结构体相同链表的插入ListNode *newNode = new ListNode(val);   // 通过new构造一个新的节点,节点的值为valcur -> next = newNode;   // cur节点的next节点是新节点,从而将新节点接入链表cur = cur -> next;  new在堆内存中动态分配内存空间,并返回分配内存的地址->通过指针访问指针所指向的对象的成员

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询