1.创建一个链表,节点里的内容放字符串(字符串取英文单词){放在.h文件中}
2.10个节点把它们链起来
3.任意一个单词插入/删除(两个函数)
4.计数链表单词数(一个函数)
#include <string>
#include <iostream>
#include "linklist.h"
using namespace std;
void insertNode(LinkListNode *&list)
{
int size;
char data;
cout << "输入要插入的字母个数:";
cin >> size;
for (size_t i = 0; i < size; i++)
{
cout << "输入要插入的字母:";
cin >> data;
LinkListNode *tmp = new LinkListNode;
tmp->data = data;
list->pNext = tmp;
list = list->pNext;
}
}
void deleteNode(LinkListNode *&head, char data)
{
//首先判断是不是空链表
if (head != nullptr)
{
//判断是不是删除头节点
if (head->data == data)
{
head = head->pNext;
delete head;
}
else
{
//如果有该结点,遍历到待删除节点的前一节点
while (head->pNext != nullptr && head->pNext->data != data)
{
head = head->pNext;
}
if (head->pNext != nullptr)
{
LinkListNode *deleteNode = head->pNext;
head->pNext = deleteNode->pNext;
delete deleteNode;
}
}
}
}
void printList(LinkListNode *list)
{
if (list != nullptr)
{
cout << "------输出链表元素------" << endl;
LinkListNode *tmp = list->pNext;
while (tmp)
{
cout << tmp->data << endl;
tmp = tmp->pNext;
}
}
}
int main()
{
LinkListNode *node = new LinkListNode;
char delChar;
// 记录头节点
LinkListNode *head = node;
// 插入节点
insertNode(node);
// 打印
printList(head);
// 删除
cout << "输入要删除的字母:";
cin >> delChar;
deleteNode(node, delChar);
// 打印
printList(head);
return 0;
}