#c# #linked-list #console #implementation
#c# #связанный список #консоль #реализация
Вопрос:
Привет, мне было интересно, может ли кто-нибудь мне помочь. здесь я застрял в тупике. Я не знаю, как создать функцию просмотра и работы pop. мне нужна помощь.
вот мой код на данный момент:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp13
{
class Program
{
int nextFree;
int End;
int Start;
Names[] Stack;
Names steven = new Names();
Names jacques = new Names();
Names samantha = new Names();
Names lilly = new Names();
public struct Names
{
public Int32 pointer;
public string data;
}
static void Main(string[] args)
{
Program prog = new Program();
do
{
prog.DisplayMenu();
}
while (true);
}
public void DisplayMenu()
{
Int32 userInput = 0;
Console.WriteLine("Enter number of choice:");
Console.WriteLine("=======================");
Console.WriteLine("1: Sign up for consultation");
Console.WriteLine("2: Begin consultation");
Console.WriteLine("3: Enter room");
Console.WriteLine("4: Closing time");
Console.WriteLine("5: Exit");
userInput = Int32.Parse(Console.ReadLine());
switch (userInput)
{
case 1:
this.Push();
break;
case 2:
this.Pop();
break;
case 5:
System.Environment.Exit(1);
break;
}
}
public Program()
{
Stack = new Names[20];
steven.data = "Steven";
steven.pointer = 1;
jacques.data = "Jacques";
jacques.pointer = 2;
samantha.data = "Samantha";
samantha.pointer = 3;
lilly.data = "Lilly";
lilly.pointer = -1;
Stack[0] = steven;
Stack[1] = jacques;
Stack[2] = samantha;
Stack[3] = lilly;
nextFree = 4;
End = 20;
Start = 0;
}
public string Pop()
{
string value = string.Empty;
if (nextFree == -1)
{
Console.WriteLine("Stack is empty");
Console.ReadLine();
}
else
{
Names thisNode = Stack[End];
int temp = End;
End = thisNode.pointer;
thisNode.pointer = nextFree;
nextFree = temp;
}
this.ListAllNames();
return value;
}
public void Push()
{
if (nextFree >= Stack.Length)
{
Console.WriteLine("Stackoverflow, to many elements for the stack");
Console.ReadLine();
}
else
{
Console.WriteLine("Enter a name to be added");
string input = Console.ReadLine();
Stack[nextFree].data = input;
Stack[nextFree].pointer = End;
End = nextFree;
nextFree ;
}
this.ListAllNames();
}
public void ListAllNames()
{
foreach (Names name in Stack)
{
Console.WriteLine("Name:" name.data);
}
}
}
}
как вы можете видеть, она не завершена. я зашел в тупик и не могу переместить ни одного.
У меня возникли проблемы с использованием элементов здесь, чтобы я мог правильно создавать такие функции, как peek и pop.
Комментарии:
1. Я сделал реализацию, возможно, это поможет codereview.stackexchange.com/questions/138142/linked-list-in-c
2. Лучше всего было бы спросить своего наставника или преподавателя. Такого рода вопросы слишком широки для SO, если только вы не можете сузить их до одной проблемы, например, если что-то не работает, и вы объясняете, чего вы хотите, и что происходит вместо этого.
3. Возможно, эта ссылка могла бы вам помочь: geeksforgeeks.org/implementing-stack-c-sharp
4. Класс Stack уже реализует Push(), Pop() и Peek (), вам следует использовать его, а не изобретать велосипед заново : learn.microsoft.com/en-us/dotnet/api /…