【数据结构】JavaScript实现堆栈和队列

以你之姓@ 2022-05-17 04:16 312阅读 0赞

栈 : 又名堆栈,是一种遵循先进后出(LIFO)原则的线性表。只能在一端进行插入和删除操作。这一端被称为栈顶,相对地,把另一端叫做栈底。 向一个栈插入新元素称为压栈,进栈;从一个栈删除元素叫做出栈,弹栈。
比如典型的例子:弹夹

创建栈,用一个js构造函数来表示栈

  1. function Stack(){
  2. var items = []
  3. // 判断是不是空栈
  4. this.isEmporty = function(){
  5. return items.length == 0
  6. }
  7. // 压栈
  8. this.push = function(e){
  9. items.push(e)
  10. return items
  11. }
  12. // 出栈
  13. this.pop = function(){
  14. return items.pop()
  15. }
  16. // 返回栈顶元素
  17. this.peek = function(){
  18. return items[items.length -1]
  19. }
  20. // 清空一个栈
  21. this.clear = function(){
  22. items = []
  23. }
  24. }
  25. var stack = new Stack()
  26. console.log( stack.isEmporty() )
  27. console.log( stack.push(1) )
  28. console.log( stack.push(22) )
  29. console.log( stack.peek() )

用数组的方法实现的栈,比用C语言实现的栈简单多了

队列:是遵循FIFO(First In First Out,先进先出)的一种特殊的线性表。特殊在于只允许在表头进行删除元素(出队),在队尾添加新元素(进队)。

  1. // 使用构造函数表示一个队列
  2. function Queue(){
  3. var items = []
  4. this.isEmpty = function(){
  5. return items.length == 0
  6. }
  7. // 入队操作,即在数组末尾添加一个元素,使用push()
  8. this.enqueue = function( e ){
  9. items.push(e)
  10. return items
  11. }
  12. // 出队,删除数组第一个元素,使用unshift()
  13. this.dequeue = function (){
  14. if( items == 0){
  15. return '队空为....'
  16. }
  17. return items.unshift()
  18. }
  19. // 返回队列第一个元素
  20. this.front = function(){
  21. if( items == 0 ){
  22. return '队空为....'
  23. }
  24. return items[0]
  25. }
  26. // 判断队列是否为空
  27. this.size = function(){
  28. return items.length;
  29. }
  30. }
  31. var dui = new Queue();
  32. console.log(dui.enqueue(2))
  33. console.log(dui.enqueue(2))
  34. console.log(dui.front())

发表评论

表情:
评论列表 (有 0 条评论,312人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Java数据结构--------堆栈队列

    本章相关介绍: 堆栈和队列都是特殊的线性表。线性表、堆栈和队列三者的数据元素以及数据元素间的逻辑关系完全相同,差别是线性表的插入和删除操作不受限制,而堆栈只能在栈顶插入和删除

    相关 数据结构堆栈队列

    堆栈与队列是两种重要的基础数据结构,一个是先入后出,一个是先入先出,有着广泛的应用,本文分别使用数组与链表实现堆栈与队列 顺序存储方式实现堆栈 define

    相关 数据结构:JavaScript实现队列

    队列是一种列表,不同的是队列只能在队尾插入元素,在队首删除元素。 队列用于存储按顺序排列的数据,先进先出,可以将队列想象成在食堂排队打饭的人群,排在队伍最前面的人第一个打饭,

    相关 数据结构——堆栈队列

    堆栈和队列都是特殊的线性表,线性表、堆栈和队列三者的数据元素以及数据元素之间的逻辑关系完全相同。 差别:线性表的插入和删除操作不受任何限制,而堆栈只能在栈顶插入和删除,队列