以前的写的 链表堆

原创 2007年10月13日 09:31:00

先放出来,这两天修改一下。这个星期估计是要加班了,郁闷,项目一直赶不出来,我责任重大啊。

结点

 

internal class TCStackNode<T>
    
...{
        
public TCStackNode()
        
...{ }

        
private T nodeValue = default(T);                //节点对象

        
private TCStackNode<T> nextNode = null;                //   节点对应的上一节点地址


        
/**//// <summary>
        
///  节点对应的上一节点地址
        
/// </summary>

        internal TCStackNode<T> NextNode
        
...{
            
get ...return nextNode; }
            
set ...{ nextNode = value; }
        }


        
/**//// <summary>
        
/// 节点的值
        
/// </summary>

        internal T NodeValue
        
...{
            
get ...return nodeValue; }
            
set ...{ nodeValue = value; }
        }

    }

 泛型堆栈类

 /**//// <summary>
    
/// 泛型堆栈类
    
/// </summary>
    
/// <typeparam name="T"></typeparam>

    public class TCStack <T>
    
...{
        
/**//// <summary>
        
/// 泛型堆栈类 构造函数
        
/// </summary>

        public TCStack()
        
...{
        }


        
private int stackLength = 0;            //堆栈长度
        private TCStackNode<T> FirstNode = null//堆栈头
        private TCStackNode<T> EndNode = null//堆栈尾 


        
/**//// <summary>
        
/// 堆栈长度
        
/// </summary>

        public int StackLength
        
...{
            
get ...return stackLength; }
        }


        
/**//// <summary>
        
/// 入栈
        
/// </summary>
        
/// <param name="NodeValue">结点值</param>

        public void Push(T NodeValue)
        
...{
            TCStackNode
<T> StackNode = new TCStackNode<T>();
            
if (stackLength == 0)
            
...{
                StackNode.NodeValue 
= NodeValue;
                FirstNode
=EndNode = StackNode;
                
++stackLength;
            }

            
else
            
...{
                StackNode.NodeValue 
= NodeValue;
                EndNode.NextNode 
= StackNode;
                EndNode 
= StackNode;
                
++stackLength;
            }

        }


        
/**//// <summary>
        
/// 出栈
        
/// </summary>
        
/// <returns>结点值</returns>

        public T Pop()
        
...{
            
if (stackLength == 0return default(T);
            T reT 
= EndNode.NodeValue;

            
            
--stackLength;
            EndNode 
= FirstNode;
            
for (int iCount = 1; iCount < stackLength ; iCount++)
            
...{
                EndNode 
= EndNode.NextNode;
            }

            
return reT;
        }

    }

数据结构系列——堆

堆(Heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。在队列中,调度程序反复提取队列中第一个作业并运行,因为实际情况中某些时间较短的任务将等待很长时间才能结束,...
  • hqshaozhu
  • hqshaozhu
  • 2015-11-19 13:13:20
  • 1500

自己写GoBinaryHead 二叉堆binaryheap实现优先队列(堆)

前言:java GoBinaryHead二叉堆binaryheap实现优先队列(堆) 1. 二叉堆是完全二叉树 因为完全二叉数的规律(root始终最小) 用数组实现此数据结构优于链表 2. ,注意...
  • Yan_Chou
  • Yan_Chou
  • 2017-03-03 18:13:18
  • 295

C++ STL 容器与算法概述

STL容器与算法(挂)
  • Binary_Heap
  • Binary_Heap
  • 2017-11-03 13:26:25
  • 72

数据结构--二叉堆与堆排序

二叉堆的概念 二叉堆,BinaryHeap,是二叉树中的常见的一种结构。通常以最大堆和最小堆的形式呈现。最大堆指的是父节点大于等于孩子节点的value值,也就是说对于最大堆而言,根元素是二叉堆最大的...
  • mao19931004
  • mao19931004
  • 2016-04-24 22:38:04
  • 3668

c++实现最大堆建立(链表结构)和堆排序

用c++实现链表结构的最大堆的建立并能执行堆排序。
  • PortGas_d_Luffy
  • PortGas_d_Luffy
  • 2017-06-02 21:21:03
  • 784

链表与数组的区别及堆和栈的区别

链表与数组的区别A 从逻辑结构来看A-1. 数组必须事先定义固定的长度(元素个数),不能适应数据动态地增减的情况。当     数据增加时,可能超出原先定义的元素个数;当数据减少时,造成内存浪费。A-2...
  • feike2008
  • feike2008
  • 2010-05-22 16:25:00
  • 2924

数据结构与算法

整理和自己总结的部分数据结构和算法。数据结构队列特点是FIFO。是一种常见的数据结构。可用链表和数组实现。 出队时,链表只需要给出链头并将链头重新指向即可,而数组则需要进行一次全数组移动的操作。 ...
  • NachtZ
  • NachtZ
  • 2017-05-28 08:11:18
  • 926

数据结构逻辑结构与存储结构

存储结构是数据的逻辑结构用计算机语言的实现,常见的存储结构有 顺序存储,链式存储,索引存储,以及散列存储。其中散列所形成的存储结构叫散列表(又叫哈希表),因此哈希表也是一种存储结构。栈只是一种抽象数据...
  • u010282707
  • u010282707
  • 2013-12-24 22:10:00
  • 2292

【万字总结】图解堆算法、链表、栈与队列(多图预警)

堆算法什么是堆堆(heap),是一类特殊的数据结构的统称。它通常被看作一棵树的数组对象。在队列中,调度程序反复提取队列中的第一个作业并运行,因为实际情况中某些时间较短的任务却可能需要等待很长时间才能开...
  • NoMasp
  • NoMasp
  • 2015-12-18 08:40:12
  • 19219

用链表表示的可合并最大堆

相关问题:(利用链表实现可合并堆) 可合并堆支持以下操作:MAKE-HEAP(创建一个空的可合并堆),INSERT,MAXIMUM,EXTRACT-MAX和UNION。说明在下列前提下如何用链表实现可...
  • z84616995z
  • z84616995z
  • 2014-03-13 16:30:03
  • 1569
收藏助手
不良信息举报
您举报文章:以前的写的 链表堆
举报原因:
原因补充:

(最多只允许输入30个字)