C ++堆栈和2D数组

时间:2012-02-21 05:05:58

标签: c++ arrays stack multidimensional-array

我一直在研究一个项目,假设通过使用2D数组来模拟链接列表。我有代码,但我无法弄清楚如何使随机数工作。我已经在线查看,但在线并没有解释如何使随机功能与模拟一起工作。以下是我的代码:

`#include <iostream>

#include <stdlib.h>
using namespace std;

int myTop = -1;
int index = -1;
int next = -1;
int tt[25][2]; 
void construct()
{
    tt[25][2];
}

void empty()
{
    if (myTop == -1)
        cout << "Empty Stack";
    else
        cout << "Full Stack";
}

void push(int x)
{
    if (myTop < 24)
    {   
        myTop++;
        tt[myTop] = x;  
    }
    else
        cout << "The stack is full.";       
}

void top()
{
    if (myTop != -1)
        cout << "Top Value is: " << tt[myTop];
    else
        cout << "Empty Stack";

}

int pop()
{
    int x;
         if(myTop<=0)
         {
                cout<<"stack is empty"<<endl;
                return 0;
         }
         else
         {
                x=tt[myTop];
                myTop--;
          }
          return(x);

}

void display()
{
    for (int row=0; row<25; row++)
    {
        for (int column=0; column<3; column++)
        {
            cout << tt[row][column] << "\t";
            if (column == 2)
                cout << endl;
        }
    }
    cout << endl;
}

int main()
{
    push(rand() % 25);
    display();
    push(rand() % 25);
    display();
    push(rand() % 25);
    display();
    push(rand() % 25);
    display();
    top();
    pop();
    display();
    top();
    pop();
    display();
    top();
    pop();
    display();
    }

3 个答案:

答案 0 :(得分:4)

您尚未初始化随机数生成器(这称为“播种”)。

将以下内容添加到您的代码中。

#include <time.h>

srand (time(0));

另一方面,我更喜欢使用ctimecstdlib,因为这些是c ++标题(尽管可以辩论)。另外,如果您有权访问最新的编译器,请查看random标题。

答案 1 :(得分:2)

答案 2 :(得分:0)

以下是如何在C ++中使用随机数

#include <cstdlib>
#include <ctime>

int main ()
{
  srand(time(NULL));
  number = rand() % 10 + 1; # Random number between 1 and 10
}