以前的写的 链表堆

原创 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),是一类特殊的数据结构的统称。它通常被看作一棵树的数组对象。在队列中,调度程序反复提取队列中的第一个作业并运行,因为实际情况中某些时间较短的任务却可能需要等待很长时间才能开...
  • NoMasp
  • NoMasp
  • 2015年12月18日 08:40
  • 18555

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

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

堆,栈,队列,链表,数组

堆和栈从操作系统和数据结构中加以区别: c
  • sinat_15799399
  • sinat_15799399
  • 2014年10月28日 15:31
  • 1110

二叉堆(Binary heap)

Binary heap There are several types of heaps, but in the current article we are going to discuss ...
  • bdss58
  • bdss58
  • 2014年11月03日 16:32
  • 1002

用链表实现堆栈

堆栈(stack)是一组相同数据类型数据的集合,且拥有后入先出(last in first out)的特性,即堆栈的所有操作都是在顶端进行的。堆栈有五个基本操作: Creat...
  • Gordennizaicunzai
  • Gordennizaicunzai
  • 2017年06月18日 22:12
  • 334

搜索树和链表实现的堆

目的: 1、创建最大堆类。最大堆的存储结构使用链表。 2、提供操作:堆的插入、堆的删除。堆的初始化。Huffman 树的构造。二叉搜索树的构造。 3、接收键盘录入的一系列整数,输出其对应的最大堆...
  • java_xiaoer
  • java_xiaoer
  • 2016年02月17日 15:27
  • 567

如何写一个链表

有的时候,处于内存中的数据并不是连续的。那么这时候,我们就需要在数据结构中添加一个属性,这个属性会记录下面一个数据的地址。有了这个地址之后,所有的数据就像一条链子一样串起来了,那么这个地址属性就起到了...
  • lmj15151856373
  • lmj15151856373
  • 2016年12月19日 13:36
  • 259

数据结构:可合并堆——左偏树

刚刚又看了一遍左偏树的内容,为了加深理解,自己也写一篇,夹杂着许许多多的借鉴。 左偏树是可合并的二叉堆,首先满足所有的堆的性质,其外,它还可以合并。 左偏树的树节点需要保存的信息有:         ...
  • qq_25978793
  • qq_25978793
  • 2015年08月17日 21:25
  • 1541

堆排序的链式实现

GCC编译通过:#include #include #define N 10 #define MAX 100 typedef struct node{ int data; stru...
  • BTnode
  • BTnode
  • 2015年03月08日 23:15
  • 357

链式结构实现堆排序

在很多数据结构和算法的书上,“堆排序”的实现都是建立在数组上,数组能够通过下标访问其元素,其这一特性在堆排序的实现上,使得其编码实现比链式结构简单,下面我利用链表实现堆排序。 在“堆”这种数据结构中...
  • u013314067
  • u013314067
  • 2015年03月10日 20:07
  • 553
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:以前的写的 链表堆
举报原因:
原因补充:

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