C++ 链表
2023-09-11 14:13:59 时间
代码:
// Test_Console_3.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <iostream>
#include<cstdlib>
using namespace std;
// 链表结构体
typedef struct listpoint
{
int data; // 数据
listpoint* next; // 指向下一节点的指针
}listpoint;
// 插入数据
listpoint* insertNode(listpoint* head, int data) {
listpoint* newNode = new listpoint();
newNode->data = data;
listpoint* p = head;
if (p == nullptr) {
head = newNode;
}
else {
while (p->next != nullptr) {
p = p->next;
}
p->next = newNode;
}
return head;
}
// 删除数据
listpoint* deleteNode(listpoint* head, int data) {
listpoint* p = head;
if (p == nullptr) {
return head;
}
if (p->data == data) {
head = p->next;
delete p;
return head;
}
while (p->next != nullptr && p->next->data != data) {
p = p->next;
}
if (p->next == nullptr) {
return head;
}
listpoint* deleteNode = p->next;
p->next = deleteNode->next;
delete deleteNode;
return head;
}
int main()
{
// 创建链表
listpoint* head = new listpoint();
head->data = 0; head->next = nullptr;
listpoint* lp = head;
// 插入数据
insertNode(head, 1);
insertNode(head, 2);
insertNode(head, 3);
// 打印链表
lp = head;
while (lp) {
cout << lp->data << endl;
lp = lp->next;
}
// 删除数据
deleteNode(head, 3);
// 打印链表
lp = head;
while (lp) {
cout << lp->data << endl;
lp = lp->next;
}
getchar();
return 0;
}
效果图:
相关文章
- 【C/C++学院】0802-链式栈/链表队列以及优先队列/封装链表库
- 【C/C++学院】(4)c++开篇/类和对象/命名空间/类型增强/三目运算符/const专题/引用专题/函数增强
- 【问题解决方案】Dev C++ 无法调试的问题与解决
- C语言/C++基础之爱心程序源码(附源码)
- C语言/C++常见习题问答集锦(七十一) 之创建链表与洗牌发牌
- C语言/C++常见习题问答集锦(六十二) 之约瑟夫环问题(C语言链表实现)
- Atitit 文件上传 架构设计 实现机制 解决方案 实践java php c#.net js javascript c++ python
- C++设计模式详解之命令模式解析
- 移除链表元素(C++)
- 反转链表(C++)
- 【华为OD机试 2023最新 】 单向链表中间节点(C++ 100%)
- 【 华为OD机试 2023】 单向链表中间节点(C++ Java JavaScript Python)
- opencv3/C++ 机器学习-SVM应用实例:药品(胶囊)识别与分类
- c++ 操作注冊表
- C++链表冒泡,归并,插入排序(纯指针)
- Ubuntu20.04下,qt交叉编译报错::15: warning: identifier ‘nullptr‘ is a keyword in C++11 [-Wc++0x-compat]
- C++责任链模式