巧用javascript数组实现数据结构-堆栈与队列
来源:互联网 发布:mac vmware删除win七 编辑:程序博客网 时间:2024/06/05 23:41
简单的利用javascript的数组实现数据结构中的堆栈和队列。
Queue.js源码:
测试:
Stack.js源码:
/* * @brief: 定义堆栈类 * @remark: 实现堆栈基本功能 */function Stack(){ //存储元素数组 var aElement = new Array(); /* * @brief: 元素入栈 * @param: 入栈元素列表 * @return: 堆栈元素个数 * @remark: 1.Push方法参数可以多个 * 2.参数为空时返回-1 */ Stack.prototype.Push = function(vElement){ if (arguments.length == 0) return - 1; //元素入栈 for (var i = 0; i < arguments.length; i++){ aElement.push(arguments[i]); } return aElement.length; } /* * @brief: 元素出栈 * @return: vElement * @remark: 当堆栈元素为空时,返回null */ Stack.prototype.Pop = function(){ if (aElement.length == 0) return null; else return aElement.pop(); } /* * @brief: 获取堆栈元素个数 * @return: 元素个数 */ Stack.prototype.GetSize = function(){ return aElement.length; } /* * @brief: 返回栈顶元素值 * @return: vElement * @remark: 若堆栈为空则返回null */ Stack.prototype.GetTop = function(){ if (aElement.length == 0) return null; else return aElement[aElement.length - 1]; } /* * @brief: 将堆栈置空 */ Stack.prototype.MakeEmpty = function(){ aElement.length = 0; } /* * @brief: 判断堆栈是否为空 * @return: 堆栈为空返回true,否则返回false */ Stack.prototype.IsEmpty = function(){ if (aElement.length == 0) return true; else return false; } /* * @brief: 将堆栈元素转化为字符串 * @return: 堆栈元素字符串 */ Stack.prototype.toString = function(){ var sResult = (aElement.reverse()).toString(); aElement.reverse() return sResult; }}
Queue.js源码:
/* * @brief: 定义队列类 * @remark:实现队列基本功能 */function Queue(){ //存储元素数组 var aElement = new Array(); /* * @brief: 元素入队 * @param: vElement元素列表 * @return: 返回当前队列元素个数 * @remark: 1.EnQueue方法参数可以多个 * 2.参数为空时返回-1 */ Queue.prototype.EnQueue = function(vElement){ if (arguments.length == 0) return - 1; //元素入队 for (var i = 0; i < arguments.length; i++){ aElement.push(arguments[i]); } return aElement.length; } /* * @brief: 元素出队 * @return: vElement * @remark: 当队列元素为空时,返回null */ Queue.prototype.DeQueue = function(){ if (aElement.length == 0) return null; else return aElement.shift(); } /* * @brief: 获取队列元素个数 * @return: 元素个数 */ Queue.prototype.GetSize = function(){ return aElement.length; } /* * @brief: 返回队头素值 * @return: vElement * @remark: 若队列为空则返回null */ Queue.prototype.GetHead = function(){ if (aElement.length == 0) return null; else return aElement[0]; } /* * @brief: 返回队尾素值 * @return: vElement * @remark: 若队列为空则返回null */ Queue.prototype.GetEnd = function(){ if (aElement.length == 0) return null; else return aElement[aElement.length - 1]; } /* * @brief: 将队列置空 */ Queue.prototype.MakeEmpty = function(){ aElement.length = 0; } /* * @brief: 判断队列是否为空 * @return: 队列为空返回true,否则返回false */ Queue.prototype.IsEmpty = function(){ if (aElement.length == 0) return true; else return false; } /* * @brief: 将队列元素转化为字符串 * @return: 队列元素字符串 */ Queue.prototype.toString = function(){ var sResult = (aElement.reverse()).toString(); aElement.reverse() return sResult; }}
测试:
var oStack = new Stack();oStack.Push("abc", "123", 890);console.log(oStack.toString());oStack.Push("qq");console.log(oStack.toString());// alert(oStack.GetSize());// alert(oStack.Pop());// alert(oStack.GetTop());// oStack.MakeEmpty();// alert(oStack.GetSize());// alert(oStack.toString());delete oStack;var oQueue = new Queue();oQueue.EnQueue("bbs", "fans", "bruce");console.log(oQueue.toString());oQueue.EnQueue(23423);console.log(oQueue.toString());// alert(oQueue.DeQueue());// alert(oQueue.GetSize());// alert(oQueue.GetHead());// alert(oQueue.GetEnd());// oQueue.MakeEmpty();// alert(oQueue.IsEmpty());// alert(oQueue.toString());delete oQueue;
- 巧用javascript数组实现数据结构-堆栈与队列
- 巧用javascript数组实现数据结构-堆栈与队列
- 使用JavaScript的数组实现数据结构中的队列与堆栈
- 使用JavaScript的数组实现数据结构中的队列与堆栈
- 使用JavaScript的数组实现数据结构中的队列与堆栈
- 使用JavaScript的数组实现数据结构中的队列与堆栈
- JavaScript学习总结(二十一)——使用JavaScript的数组实现数据结构中的队列与堆栈
- JavaScript的数组实现队列与堆栈的方法
- JavaScript的数组实现队列与堆栈的方法
- JavaScript实现数据结构中的队列和堆栈
- 数据结构:数组、链表、堆栈、队列
- 用数组实现js中的堆栈 或者队列数据结构
- 数据结构-堆栈-数组实现
- 数据结构之堆栈与队列
- js利用数组实现队列与堆栈效果
- 数据结构与算法之动态数组实现堆栈
- 数据结构与算法-----堆栈-使用数组(顺序结构)实现
- 数据结构---队列(数组实现)
- 如何实现由Google Apps向Office 365的过渡?
- csapp2e 家庭作业 2.94
- linux进程的信号通信与进程的管道通信
- jquery解决和其他库冲突的问题
- 黑马程序员-(8)Java基础之面向对象(三)继承
- 巧用javascript数组实现数据结构-堆栈与队列
- 判断是否溢出
- hadoop,hbase,hive安装全记录
- 手机共享电脑网络的方法
- 简单ajax模型
- 黑马程序员-(9)Java基础之面向对象(四)多态
- vb.net—DataGridView的使用
- 黑马程序员-(10)Java基础之面向对象(五)内部类
- Hadoop中文件读写(Java) <转>