如何删除C ++中添加到链接列表中的最后一个元素

用户名

我是第一次使用指针。我有一个程序,可以在链接列表中插入数字,打印列表,然后从列表中删除特定的数字。除我尝试删除最后插入的号码外,它均有效。

节点

#ifndef Node_h
#define Node_h

#include <iostream>
using namespace std;

class Node
{
public:
    int data;
    Node *next;

public:
Node();
};

#endif

Node.cpp

#include "Node.h"

Node::Node()
{
}

LinkedList.h

#ifndef LinkedList_h
#define LinkedList_h

#include "Node.h"

class LinkedList
{
    private:
    Node *pL;

public:
    LinkedList();
    void insert(int nr1);
    void deleteNr(int nr1);
    void printL();
};

#endif

LinkedList.cpp //此程序正在创建数字的“链表”

#include "LinkedList.h"

LinkedList::LinkedList()
{
    pL = NULL;
}

void LinkedList::insert(int nr1)
{
    Node *p = new Node;
    p->data = nr1;
    p->next = pL;
    pL = p;
}

void LinkedList::deleteNr(int nr1)
{
    Node *p = pL;
    Node *p2 = pL;
    while (p != NULL & p->data != nr1)
    {
        p2 = p;
        p = p->next;
    }

    if (p != NULL)
    {
        p2->next = p->next;
        delete p;
    }
}

void LinkedList::printL()
{
    Node *p = pL;

    while (p != NULL)
    {
        cout << p->data << "-> ";
        p = p->next;
    }
}

main.cpp

#include "LinkedList.h"

int menu();

//////// main /////////
int main()
{
    int choice1, nr1;
    LinkedList lk1;

    choice1 = menu();

    while (choice1 <= 3)
    {
        if (choice1 == 1)
        {
            cout << "Enter number." << endl;
            cin >> nr1;
            lk1.insert(nr1);
        }

        else if (choice1 == 2)
        {
            cout << "Enter number." << endl;
            cin >> nr1;
            lk1.deleteNr(nr1);
        }

        else if (choice1 == 3)
        {
            lk1.printL();
            cout << endl << endl;
        }

        else if (choice1 == 4)
        {
            cout << "Exit the program." << endl;
            system("pause");
            exit(1);
        }

        choice1 = menu();
    } // end while loop
}

int menu()
{
    int choice1;

    cout << "1. Insert a number into the linked-list." << endl;
    cout << "2. Delete a number from the linked-list." << endl;
    cout << "3. Print the linked-list." << endl;
    cout << "4. Exit the program." << endl;
    cout << "Enter choice." << endl;
    cin >> choice1;

    return choice1;
}
萨胡

您需要添加代码来处理给定输入对应于列表中第一项的情况。

void LinkedList::deleteNr(int nr1)
{
   Node *p = pL;

   if ( p != NULL && p->data == nr1 )
   {
      pL = p->next;
      delete p;
      return;
   }

   Node *p2 = pL;
   while (p != NULL && p->data != nr1)
   {
      p2 = p;
      p = p->next;
   }

   if (p != NULL)
   {
      p2->next = p->next;
      delete p;
   }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何删除元素列表中的类并添加到另一个元素Jquery?

来自分类Dev

如何基于Python中的上一个元素将新元素添加到列表中?

来自分类Dev

如何将一个类一个接一个地添加到列表中的每个元素

来自分类Dev

将元素添加到另一个div中时如何从HTML中删除元素

来自分类Dev

如何将列表中的列表添加到另一个列表

来自分类Dev

如何提取添加到zip存档中的最后一个文件

来自分类Dev

如何在C++中将元素添加到数组的最后一个

来自分类Dev

如何将一个类添加到一个元素并从所有兄弟元素中删除一个类 angular

来自分类Dev

如何创建一个列表作为字典的键并添加到不同部分的列表中?

来自分类Dev

如何从jdk 8中的另一个列表添加到列表

来自分类Dev

如何在文档Xcode中添加到另一个方法的链接/引用?

来自分类Dev

如何在文档Xcode中添加到另一个方法的链接/引用?

来自分类Dev

将列表添加到 C# 中的另一个列表

来自分类Dev

如何将一个集合添加到 Scala 中的集合列表中

来自分类Dev

如何一次将一个元素多次添加到数组中

来自分类Dev

如何将上一个元素添加到当前的jQuery选择中?

来自分类Dev

C-链接列表-插入元素未更新-仅添加最后一个输入元素

来自分类Dev

如何从另一个类的列表中将项目添加到ListView中

来自分类Dev

我有一个问题。如何遍历for并将数据添加到列表中?

来自分类Dev

给定一个整数列表和一个索引列表,我该如何使用map将10添加到第一个列表中的特定元素?

来自分类Dev

将一个列表上的AddLast()添加到列表数组C#中的所有列表中

来自分类Dev

从数组中动态删除n个元素,然后添加到另一个数组中

来自分类Dev

如何将元素添加到一个ArrayList中的java里面一个for循环不ConcurrentModificationException的

来自分类Dev

如何存储单击的最后一个按钮并添加到列表框

来自分类Dev

如何将除法剩余的食物添加到最后一个列表?

来自分类Dev

Python-如何删除列表列表中的最后一个元素?

来自分类Dev

Python-如何删除列表列表中的最后一个元素?

来自分类Dev

如何不使用双指针从链接列表中删除最后一个节点

来自分类Dev

从C ++中的集合中删除最后一个元素

Related 相关文章

  1. 1

    如何删除元素列表中的类并添加到另一个元素Jquery?

  2. 2

    如何基于Python中的上一个元素将新元素添加到列表中?

  3. 3

    如何将一个类一个接一个地添加到列表中的每个元素

  4. 4

    将元素添加到另一个div中时如何从HTML中删除元素

  5. 5

    如何将列表中的列表添加到另一个列表

  6. 6

    如何提取添加到zip存档中的最后一个文件

  7. 7

    如何在C++中将元素添加到数组的最后一个

  8. 8

    如何将一个类添加到一个元素并从所有兄弟元素中删除一个类 angular

  9. 9

    如何创建一个列表作为字典的键并添加到不同部分的列表中?

  10. 10

    如何从jdk 8中的另一个列表添加到列表

  11. 11

    如何在文档Xcode中添加到另一个方法的链接/引用?

  12. 12

    如何在文档Xcode中添加到另一个方法的链接/引用?

  13. 13

    将列表添加到 C# 中的另一个列表

  14. 14

    如何将一个集合添加到 Scala 中的集合列表中

  15. 15

    如何一次将一个元素多次添加到数组中

  16. 16

    如何将上一个元素添加到当前的jQuery选择中?

  17. 17

    C-链接列表-插入元素未更新-仅添加最后一个输入元素

  18. 18

    如何从另一个类的列表中将项目添加到ListView中

  19. 19

    我有一个问题。如何遍历for并将数据添加到列表中?

  20. 20

    给定一个整数列表和一个索引列表,我该如何使用map将10添加到第一个列表中的特定元素?

  21. 21

    将一个列表上的AddLast()添加到列表数组C#中的所有列表中

  22. 22

    从数组中动态删除n个元素,然后添加到另一个数组中

  23. 23

    如何将元素添加到一个ArrayList中的java里面一个for循环不ConcurrentModificationException的

  24. 24

    如何存储单击的最后一个按钮并添加到列表框

  25. 25

    如何将除法剩余的食物添加到最后一个列表?

  26. 26

    Python-如何删除列表列表中的最后一个元素?

  27. 27

    Python-如何删除列表列表中的最后一个元素?

  28. 28

    如何不使用双指针从链接列表中删除最后一个节点

  29. 29

    从C ++中的集合中删除最后一个元素

热门标签

归档