2010-04-04 2 views
0

инициализации объектов 2 стека:Размещения и удаление элемента (ов) из объекта (стек)

Stack s1 = new Stack(), s2 = new Stack(); 

s1 = 0 0 0 0 0 0 0 0 0 0 (массив из 10 элементов Wich пуст, чтобы начать с) сверху: 0

 const int Rows = 10; 
    int[] Table = new int[Rows]; 

    public void TableStack(int[] Table) 
    { 
     for (int i=0; i < Table.Length; i++) 
     { 
     } 
    } 

Мой вопрос заключается в том, как именно я могу поместить элемент в стек (толчок) или взять элемент из стека (POP) в следующем виде:
Нажмите:

s1.Push(5); // s1 = 5 0 0 0 0 0 0 0 0 0 (top:1) 
s1.Push(9); // s1 = 5 9 0 0 0 0 0 0 0 0 (top:2) 

Поп:

int number = s1.Pop(); // s1 = 5 0 0 0 0 0 0 0 0 0 0 (top:1) 9 got removed 

Должен ли я использовать получить & множество, и если да, как именно я implent это с массивом? Не совсем уверен, что именно использовать для этого. Любые подсказки высоко оценены.

Программа использует следующий драйвер для тестирования класса Stack (которым не могут быть изменены или изменены):

 public void ExecuteProgram() 
    { 
     Console.Title = "StackDemo"; 
     Stack s1 = new Stack(), s2 = new Stack(); 
     ShowStack(s1, "s1"); 
     ShowStack(s2, "s2"); 
     Console.WriteLine(); 
     int getal = TryPop(s1); 
     ShowStack(s1, "s1"); 
     TryPush(s2, 17); 
     ShowStack(s2, "s2"); 
     TryPush(s2, -8); 
     ShowStack(s2, "s2"); 
     TryPush(s2, 59); 
     ShowStack(s2, "s2"); 
     Console.WriteLine(); 
     for (int i = 1; i <= 3; i++) 
     { 
      TryPush(s1, 2 * i); 
      ShowStack(s1, "s1"); 
     } 
     Console.WriteLine(); 
     for (int i = 1; i <= 3; i++) 
     { 
      TryPush(s2, i * i); 
      ShowStack(s2, "s2"); 
     } 
     Console.WriteLine(); 
     for (int i = 1; i <= 6; i++) 
     { 
      getal = TryPop(s2); 
      //use number 

      ShowStack(s2, "s2"); 
     } 
    }/*ExecuteProgram*/ 

С уважением.

+0

Почему бы не использовать небольшую обертку вокруг списка <>? – kervin

ответ

2

Вы можете использовать встроенный в Stack<T>, который даст вам толчок, поп, выглядывать и т.д.

+0

Я не хочу использовать для этого класс сборки в стеке. Спасибо, хотя. – Chris

+0

@Chris: если ваше домашнее задание говорит, что вы не можете использовать встроенный класс, тогда вам нужно указать это в своем вопросе. –

1

Стек объект имеет Нажмите и методы Всплывающие на него. Просто вызовите s1.Push и s1.Pop точно так же, как вы показали.

0

Подсказка: вам необходимо поддерживать индекс верхнего элемента в вашей внутренней матрице в классе Stack.

Я не уверен, что вы подразумеваете под get/set, но есть вероятность, что вам здесь не нужно (в частности, если вы на самом деле имели в виду свойства).

+0

Недвижимость. Делал что-то подобное на днях, и это меня путало, если я должен использовать это или нет. – Chris

Смежные вопросы