【上海皿鎏软件股份有限公司】有关双向链表实现undo和redo
来源:互联网 发布:淘宝开网店要多少钱 编辑:程序博客网 时间:2024/04/29 10:27
请使用双向链表模拟undo/redo的操作。设计程序,用’>’提示用户输入,如果用户输入undo或redo,则执行相应的操作,否则视为输入,每次输入后将当前输入的所有行输出。
范例:(‘>’提示符后的字符为用户输入,其他的为程序输出)
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace undoAndRedo{ class MyNode { public List<string> list; public MyNode() { list = new List<string>(); } }}
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace undoAndRedo{ class Program { static void Main(string[] args) { LinkedList<MyNode> linkList = new LinkedList<MyNode>(); MyNode tmpNode = null; while(true) { Console.Write(">"); string tmpStr = Console.ReadLine(); if (tmpStr == "redo") { foreach (var item in tmpNode.list) { Console.WriteLine(item); } } else if (tmpStr == "undo") { foreach (var item in linkList.Last.Previous.Value.list) { Console.WriteLine(item); } linkList.RemoveLast(); tmpNode = linkList.Last.Value; } else { MyNode node = new MyNode(); if (linkList.First == null) { node.list.Add(tmpStr); linkList.AddLast(node); } else { node.list.AddRange(linkList.Last.Value.list); node.list.Add(tmpStr); linkList.AddLast(node); } tmpNode = linkList.Last.Value; foreach (var item in linkList.Last.Value.list) { Console.WriteLine(item); } } } } }}
阅读全文
0 0
- 【上海皿鎏软件股份有限公司】有关双向链表实现undo和redo
- 【上海皿鎏软件股份有限公司】满足比例的无重复的9位数字
- UNDO REDO实现
- Undo/Redo实现
- Undo/Redo框架实现
- Redo日志和Undo表空间
- Undo和Redo机制
- redo和undo
- oracle redo 和undo
- RCP UNDO和Redo
- redo 和 undo 之一
- ORACLE UNDO和REDO
- redo和undo
- 关于Undo和Redo
- Redo和Undo
- redo 和 undo
- redo和undo
- redo和undo 详解
- 和为S的两个数字VS和为S的连续正数序列
- 和为S的连续正数序列
- 解决Server Tomcat v7.0 Server at localhost failed to start的方法
- HIVE入门之数据模型
- 卡常专用
- 【上海皿鎏软件股份有限公司】有关双向链表实现undo和redo
- 快速和改进的二维凸包算法及其在O(n log h)中的实现(理论部分)
- PHP学习笔记 05
- 翻转单词的顺序
- 深入理解Java内存模型(一)——基础
- 【第1116期】前端需要了解的 SSO 与 CAS 知识
- 《大话设计模式》java实现之单例模式
- Oracle Spacial(空间数据库)空间关系和条件
- 设计及封装无限层级的树状结构