单链表输出第一个元素
时间: 2024-02-13 15:00:46 浏览: 29
要输出单链表的第一个元素,只需要访问单链表的头节点即可。具体的实现可以参考下面的代码:
```c++
void printFirst(Node* head) {
if (head == nullptr) {
cout << "List is empty!" << endl;
return;
}
cout << "First element is " << head->val << endl;
}
```
其中,`Node` 是单链表节点的定义,`val` 表示节点的值,`next` 表示下一个节点的指针。`printFirst` 函数接受一个单链表的头节点指针 `head`,如果链表为空则输出提示信息,否则输出第一个元素的值。
相关问题
建立单链表输出第i个元素
好的,这是一个程序设计问题。建立单链表可以用结构体来实现,每个结构体节点包含一个数据域和一个指向下一个节点的指针。首先创建一个结构体定义链表节点:
```
struct Node {
int data;
Node* next;
};
```
然后根据需要创建链表,并输出第i个元素。这里给出一个示例代码:
```
#include <iostream>
using namespace std;
struct Node {
int data;
Node* next;
};
int main() {
int n, i;
cout << "请输入链表的长度: ";
cin >> n;
// 创建链表
Node* head = new Node;
Node* p = head;
for (int j = 1; j <= n; j++) {
Node* tmp = new Node;
cout << "请输入第" << j << "个元素: ";
cin >> tmp->data;
p->next = tmp;
p = tmp;
}
p->next = NULL;
// 输出第i个元素
cout << "请输入要输出的元素位置: ";
cin >> i;
p = head->next;
for (int j = 1; j < i && p; j++) {
p = p->next;
}
if (p) {
cout << "第" << i << "个元素为: " << p->data << endl;
}
else {
cout << "链表长度不足" << i << "个元素" << endl;
}
// 释放内存
p = head;
while (p) {
Node* tmp = p;
p = p->next;
delete tmp;
}
return 0;
}
```
运行程序,根据提示依次输入链表的长度和各个元素的值,然后输入要输出的元素位置即可。
单链表查找第i个元素主函数代码
下面是单链表查找第i个元素的主函数代码示例:
```
#include <stdio.h>
#include <stdlib.h>
// 单链表结构体
typedef struct ListNode {
int val;
struct ListNode* next;
} ListNode;
// 创建单链表
ListNode* createList(int* arr, int size) {
ListNode* head = NULL;
ListNode* tail = NULL;
for (int i = 0; i < size; i++) {
ListNode* node = (ListNode*) malloc(sizeof(ListNode));
node->val = arr[i];
node->next = NULL;
if (head == NULL) {
head = node;
tail = node;
} else {
tail->next = node;
tail = node;
}
}
return head;
}
// 查找单链表中第i个元素
ListNode* findElement(ListNode* head, int i) {
if (head == NULL || i < 1) {
return NULL;
}
ListNode* curr = head;
int count = 1;
while (curr != NULL && count < i) {
curr = curr->next;
count++;
}
if (curr == NULL) {
return NULL;
} else {
return curr;
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]);
ListNode* head = createList(arr, size);
int i = 3;
ListNode* node = findElement(head, i);
if (node == NULL) {
printf("The %dth element does not exist.\n", i);
} else {
printf("The %dth element is %d.\n", i, node->val);
}
return 0;
}
```
在主函数中,我们创建了一个包含5个元素的单链表,并查找了第3个元素。如果查找成功,则输出该元素的值;否则输出该元素不存在。