qq_53161165 2021-10-07 13:39 采纳率: 33.3%
浏览 29
已结题

数据结构,链表,希望有人回答!

1.创建一个链表,节点里的内容放字符串(字符串取英文单词){放在.h文件中}
2.10个节点把它们链起来
3.任意一个单词插入/删除(两个函数)
4.计数链表单词数(一个函数)

  • 写回答

1条回答 默认 最新

  • 偷窃月亮的贼 2021-10-08 12:03
    关注
    #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;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月17日
  • 已采纳回答 11月9日
  • 创建了问题 10月7日

悬赏问题

  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探