Удалить элемент из стека

Tamchik

Active member
10.03.2010
27
0
#1
кто нибудь знает каким оператором C# можно удалить элемент из стека (RemoveAt не подходит для консоли)??
 

Tamchik

Active member
10.03.2010
27
0
#2
Вы бы показали какой у вас стэк и что вы там удаляете.
Ну вот код
Код:
using System;
using System.Text;
using System.IO;
using System.Text.RegularExpressions;
using System.Collections;


namespace stek
{
class MainClass
{
public static void Main(string[] args)
{
Stack s = new Stack();//объявляем стек s.
StreamReader fileIn = new StreamReader("LS.txt");//выводим файл.

string findNumb = "6";

while (!fileIn.EndOfStream)
{
string text1 = fileIn.ReadLine();
//Console.WriteLine(text1);
s.Push(text1);//помещаем считанные строки в стек
Console.WriteLine(s.Peek());
}

Console.WriteLine("в стеке содержиться " + s.Count + " элементов");

//находим индекс элемента который ищем
int idx = Array.IndexOf(s.ToArray(), findNumb);

for (int i = 0; i < s.Count; i++)
{
if (i == 6)
{
s.Pop();//и удаляем его
}
}


Console.WriteLine("После удаления в стеке осталось " + s.Count + " элементов");
Console.ReadKey();
}

}
}
вот код надо удалить 6 элемент стека и вывести полученный результат в консоль
 

Tamchik

Active member
10.03.2010
27
0
#3
Если долго мучатся что нить получица вот пожалуйста прога удаляет элемент из стека:
Код:
using System;
using System.Collections.Generic;
using System.Collections;
using System.IO;
namespace steknew
{
class MainClass
{
public static void Main(string[] args)
{
Stack s = new Stack();//инициалиируем первый стек
StreamReader fileIn = new StreamReader ("LS.txt");//вывод на файл
/////////////////Цикл для помещения символов из текстового файла в стек s////////////////////
for(int i = 0; i < 9; i++)
{
String text = fileIn.ReadLine();
s.Push(text);
}
////////////////////////////////////////////////////////////////////////////////////////////
Stack st = new Stack();//инициализируем второй стек
Console.WriteLine("Введите номер элемента для удаления:");//выводим вопрос в консоль
int del = int.Parse(Console.ReadLine());//переменная для обозначения считанного числа
/////////////////Цикл для помещения символов из стека s в стек st до введеного пользователем элемента
for(int i = 0; i < del; i++)
{
st.Push(s.Pop());
}
//////////////////////////////////////////////////////////////////////////////////////////////////////
st.Pop();//удаляем верхний элемент стека st
/////////////////Цикл для помещения символов из стека st в стек s до введеного пользователем элемента
int count = st.Count;
Console.WriteLine("размер стека s = " + s.Count);
Console.WriteLine("размер стека st = " + st.Count);
for(int i = 0; i < count; i++)
{
s.Push(st.Pop());
}
Console.WriteLine("размер стека s после удаления элемента = " + s.Count);
Console.WriteLine("Верхний элемент стека = " + s.Peek());
Console.WriteLine("Полученный стек:");
for(int i = 0; i < 8; i++)
{
Console.WriteLine(s.Pop());	
}
Console.ReadKey();
}
}
}
 

Вложения

  • 14.6 КБ Просмотры: 20