[英]How to implement user inputted integers in a sorted linked list?
如标题中所述,我想知道如何允许用户推送整数并打印它们。 我写了另一个简单的程序,用户可以按键做一些事情,比如推/弹出/打印,即使一个只是一个普通的堆栈而另一个是一个链表,是否可以合并它们?
这是第一个简单地让用户添加字符串 push/pop/print 的程序:
class Program
{
static void Main(string[] args)
{
Stack<string> mystack = new Stack <string>();
int number = -1;
while (number != 0)
{
Console.WriteLine("1- enter string");
Console.WriteLine("2 - delete string");
Console.WriteLine("3- print all strings");
Console.WriteLine("0- Exit");
number = Convert.ToInt32(Console.ReadLine());
{
switch (number)
{
case 1:
Console.Write("Enter string: ");
mystack.Push(Console.ReadLine());
break;
case 2:
mystack.Pop();
Console.WriteLine("first string deleted");
break;
case 3:
foreach (string i in mystack)
{
Console.WriteLine(i);
}
break;
}
}
}
Console.ReadKey();
}
}
}
这是第二个,它是一个按升序排序的链表,但整数是由编码器输入的。
{
class LinkedList
{
public class node
{
public int data;
public node next;
};
static node start;
static void sortList(node head)
{
int startVal = 1;
while (head != null)
{
head.data = startVal;
startVal++;
head = head.next;
}
}
static void push(node head_ref,
int new_data)
{
node new_node = new node();
new_node.data = new_data;
new_node.next = head_ref;
head_ref = new_node;
start = head_ref;
}
static void printList(node node)
{
while (node != null)
{
Console.Write(node.data + " ");
node = node.next;
}
}
public static void Main(String[] args)
{
start = null;
push(start, 2);
push(start, 1);
push(start, 6);
push(start, 4);
push(start, 5);
push(start, 3);
sortList(start);
printList(start);
Console.ReadKey();
}
您正在尝试合并具有不同用法的两种不同数据类型的功能。
堆栈和链表是两种线性数据结构。 程序员可以使用任何编程语言来实现它们。 Stack 和 Linked List 的主要区别在于 Stack 根据 FIFO 机制工作,而 Linked List 的工作方式是存储数据和其他节点的地址以相互引用。
在堆栈中,可以读取最顶层的元素。 另一方面,在链表中,如果程序员想要访问特定的元素,则需要从头开始遍历每个元素。
尽管您可以将两者结合使用,从而以排序方式将数据推送到堆栈。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.