约瑟环问题-javascript实现
来源:互联网 发布:上海市重点软件企业 编辑:程序博客网 时间:2024/06/15 19:55
问题简述:n个人围成一个圆圈,开始杀人游戏,开始报数u,第m个人会被杀掉,然后继续报数,第m个人仍然被杀掉。求活下来的人的位置。
实现方法:使用循环链表实现。
以下为javascript代码:
function Node(element) { //生成节点this.element=element;this.next=null;}function LList() {this.head=new Node("head"); //头结点this.length=1; this.begin=this.head; this.head.next=this.head; //设置循环列表this.find=find;this.insert=insert;this.remove=remove;this.display=display;this.findPrevious=findPrevious;this.survie=survie;}function find(item) {var currNode=this.head;while(currNode.element!==item){currNode=currNode.next;}return currNode;}function insert(newElement,item) {var newNode=new Node(newElement);var current=this.find(item);newNode.next=current.next;current.next=newNode;this.length++;}function remove(item) {var preNode=this.findPrevious(item);preNode.next=preNode.next.next;this.length--;}function findPrevious(item) {// var currNode=this.head;var currNode=this.find(item); //注意此时从该元素往后查找。while(currNode.next!==null && currNode.next.element!==item){currNode=currNode.next;}return currNode;}function display() { var arr=[]; var kaishi=begin; //表示开始展示的位置 while(begin.next.element!==kaishi.element){ arr.push(begin.element); begin=begin.next; } arr.push(begin.element); alert(arr);}function survie(m) { begin=this.head; //全局变量用来表示链表的开始 var begining; while(this.length>=m){ for(var i=0;i<m-1;i++){ begin=begin.next; } begining=begin.next; this.remove(begin.element); begin=begining; } }var cities=new LList();cities.insert("2","head");cities.insert("3","2");cities.insert("4","3");cities.insert("5","4");cities.insert("6","5");cities.insert("7","6");cities.insert("8","7");cities.insert("9","8");cities.insert("10","9");cities.insert("11","10");cities.insert("12","11");cities.insert("13","12");cities.insert("14","13");cities.insert("15","14");cities.insert("16","15");cities.insert("17","16");cities.insert("18","17");cities.insert("19","18");cities.insert("20","19");cities.survie(5);cities.display();
欢迎指出代码的不足!!!
阅读全文
0 0
- 约瑟环问题-javascript实现
- 背包问题的 javascript和java 实现
- 猴子吃桃问题-JavaScript实现
- javascript/Jscript实现父子窗体的互相引用问题
- Javascript操作DOM元素实现多段图决策问题
- 杯子倒水问题自动求解程序(Javascript实现)
- JavaScript提高:003:easy UI实现tab页面自适应问题
- javascript实现瀑布流自适应遇到的问题及解决方案
- JavaScript使用原型实现继承时应注意的问题
- JavaScript实现tab标签-解决循环bug问题
- javascript 实现页面间传值(3) 解决中文乱码问题
- Javascript 问题
- javaScript问题
- javascript问题
- [ JavaScript ] JavaScript 实现继承.
- JavaScript实现
- JavaScript实现
- 【JavaScript】JavaScript 实现树型
- storm 集群
- 古文觀止卷八_應科目時與人書_韓愈
- 多说的和少说的
- Spring概念
- 字符数组、字符串数组和字符串三者之间的转化
- 约瑟环问题-javascript实现
- ACM集训日记-8月25日总结
- Spring插件安装步骤
- temp
- python的控制语句
- Eclipse中安装Spring插件
- 发邮件的实现
- QML语言国际化
- PWM输出