数据结构程序题 用Dev—C++编写一个程序,实现单链表的基本操作,并在此基础上设计一个主程序完成一下功能: 1) 初始化单链表L 2) 依次用头插法把202300705055输入到L中, 3) 输出单链表
时间: 2024-09-14 15:06:23 浏览: 41
OpenGL入门学习之一——编写第一个OpenGL程序
首先,我们需要了解单链表是一种常见的数据结构,它由一系列节点组成,每个节点包含数据和一个指向下一个节点的指针。在C++中,我们通常使用结构体来定义单链表的节点。
以下是使用Dev-C++编写的C++程序,实现了单链表的初始化、头插法插入元素以及输出单链表的基本操作:
```cpp
#include <iostream>
using namespace std;
// 定义单链表节点结构体
struct ListNode {
int data;
ListNode *next;
ListNode(int x) : data(x), next(NULL) {}
};
// 初始化单链表
void InitList(ListNode *&L) {
L = new ListNode(0); // 创建头节点
L->next = NULL;
}
// 头插法插入节点
void InsertHead(ListNode *&L, int x) {
ListNode *newNode = new ListNode(x); // 创建新节点
newNode->next = L->next; // 新节点指向原头节点
L->next = newNode; // 原头节点指向新节点
}
// 输出单链表
void PrintList(ListNode *L) {
ListNode *p = L->next; // 跳过头节点
while (p) {
cout << p->data << " ";
p = p->next;
}
cout << endl;
}
// 主程序
int main() {
ListNode *L;
InitList(L); // 初始化单链表
// 依次用头插法插入数据
InsertHead(L, 2023);
InsertHead(L, 20230);
InsertHead(L, 202300);
InsertHead(L, 2023007);
InsertHead(L, 20230070);
InsertHead(L, 202300705);
InsertHead(L, 2023007050);
InsertHead(L, 20230070505);
InsertHead(L, 202300705055);
// 输出单链表
PrintList(L);
// 释放链表内存
ListNode *p = L, *q;
while (p) {
q = p;
p = p->next;
delete q;
}
return 0;
}
```
在上述代码中,我们首先定义了一个单链表节点的结构体`ListNode`,然后实现了初始化单链表、头插法插入节点和输出单链表的三个函数。在主函数中,我们依次调用这些函数来完成题目要求的功能。最后,为了防止内存泄漏,我们在主函数的最后释放了链表占用的所有内存。
阅读全文