使用链接列表插入弹出功能



我是一个数据结构新手,在很长一段时间后才开始使用c++。在浏览了一些图表之后,我决定创建我自己的链表(实现一个简单的弹出函数)。

下面是我想出来的代码:
#include <iostream>
using namespace std;

typedef struct node
{
    int data;
    node *next;
}node;

node *start;
int count_1 = 0;

void push(int x)
{
    node *n = new node;
    node *temp;
    temp = n;
    temp->data = x;
    temp->next = start;
    start = temp;
    count_1++;
}
void ShowStack()
{
    for (int i=0; i<count_1; i++)
    {
        node *temp = start;
        cout<<temp->data<<endl;
        temp = temp->next;
    }
}

int main()
{
    node *n = new node;
    start = n;

    n->data = 6;
    n->next = NULL;
    count_1++;
    ShowStack();
    push(7);
    push(8);
    push(9);
    push(20);
    //count_1=20;
    ShowStack();
    return 0;
}

这是非常基本的,但我似乎面临一个问题;当我运行程序时,第一个输出是'6',这是正确的,但之后,所有的值都是20(即使我硬设置计数器为一些硬编码的值,如20(见代码))。如果有人能解释一下这个实现有什么问题,我将不胜感激(除了这个程序非常混乱的事实之外)。此外,我应该采取什么步骤来获得正确的'pop'功能

在ShowStack()函数中,将"node *temp = start;"移出循环。

相关内容

  • 没有找到相关文章

最新更新