using System.Collections;
using System.Collections.Generic;
namespace demo16下午
{
public class Person
{
public string name;
}
internal class Program
{
static void Main(string[] args)
{
//ArrayList 动态数组 List 列表 Dictionary 字典
//栈 队列 哈希表
//Stack stack = new Stack();
//入栈
//stack.Push(1);//入栈的数据类型可以不相同
// stack.Push("ddd");
// stack.Push(new Person());
//查看栈中的值 只能读到栈顶的值
//Console.WriteLine(stack.Peek);//object i=stack.Peek; Console.WriteLine(i);object 可以代表所有的类型
/* int length = stack.Count;
//想要获取所有的值
for(int j=0;j<stack.Count; j++)//怎么获取栈的长度 stsck.Count
{
object i = stack.Peek();
Console.WriteLine(i);
stack.Pop();//出栈
}*/
//可以用什么方式 while循环
/* while(stack.Count>0)
{
object i = stack.Peek();
Console.WriteLine(i);
stack.Pop();
}*/
//Console.WriteLine(stack.Contains("ddd"));//可以检查栈中是否包含该元素,返回bool值
一、编写一个方法计算任意一个十进制的二进制数 使用栈的结构方式储存
{
Stack stack = new Stack();
while (num>0)//相除结果不为0的时候
{
int remanier = num % 2;
//入栈
stack.Push(remanier);
//num要发生变化
num /= 2;
}
while(stack.Count>0)
{
Console.Write(stack.Peek());
stack.Pop();
}
}
Console.WriteLine("请输入一个十进制数:");
int num = Convert.ToInt32(Console.ReadLine());
getBin(num);
Queue queue = new Queue();
//入队列
/* queue.Enqueue("dfdf");
queue.Enqueue(34);
queue.Enqueue("sdf");*/
//出队列
// queue.Dequeue();//dfdf出队列了
//拿到队头的值
Console.WriteLine(queue.Peek());//所有对头是34
Console.WriteLine(queue.Count);
//循环遍历
/* while(queue.Count>0)
{
Console.WriteLine(queue.Peek());
queue.Dequeue();
}*/
/*Console.WriteLine(queue.Contains(34));
queue.Clear();//清除队列
Console.WriteLine(queue);*/
二、使用队列储存信息,一次性存10条消息 每隔一秒打印一条消息,控制太打印消息时要有明显的停顿,每隔一秒使用Thread.Sleep(1000)
自己做的
{
queue.Enqueue("dfdf");
}
while (queue.Count > 0)
{
object i = queue.Peek();
Console.WriteLine(i);
queue.Dequeue();
Thread.Sleep(1000);
}
老师的
List<string> news = new List<string>() { "喜迎二十大" ,"研制出克制癌症的疫苗","我爱学习","不要啊"};
//Queue queue = new Queue();
for(int i=0;i<10;i++)
{
string str = news[random.Next(0, news.Count)];
queue.Enqueue(str);
}
while(queue.Count>0)
{
Console.WriteLine(queue.Peek());
queue.Dequeue();
Thread.Sleep(1000);
}