利用头插法建立一个带头节点的线性链表,链表中依次插入26个小写的英文字母,显示该元素,将第十个字母删除后再显示该链表中剩下的元素
时间: 2024-05-30 15:12:45 浏览: 40
头插法--建立字母链表.opt
可以的,以下是代码实现:
#include <iostream>
using namespace std;
// 定义结构体 Node
struct Node {
char data; // 存储数据
Node *next; // 指向下一个节点的指针
};
int main() {
Node *head = new Node; // 创建头节点
Node *p = head; // 定义指针p指向头节点
// 循环插入26个小写英文字母
for(int i = 0; i < 26; i++) {
Node *newNode = new Node; // 创建新节点
newNode->data = 'a' + i; // 存储字母数据
newNode->next = NULL; // 新节点的指针置空
// 将新节点插入链表尾部
p->next = newNode;
p = newNode;
}
cout << "链表元素:";
p = head->next; // 指针p指向第一个节点(跳过头节点)
while(p != NULL) {
cout << p->data << " ";
p = p->next;
}
cout << endl;
// 删除第10个字母j
p = head; // 指针p重新指向头节点
for(int i = 0; i < 9; i++) { // 找到第9个节点
p = p->next;
}
Node *q = p->next; // 待删除节点
p->next = q->next; // 删除待删除节点
cout << "删除第十个字母j后的链表元素:";
p = head->next; // 指针p指向第一个节点(跳过头节点)
while(p != NULL) {
cout << p->data << " ";
p = p->next;
}
cout << endl;
return 0;
}
阅读全文