数据结构实现时的注意事项

原创 2016年08月30日 17:54:47

1. 普通队列与循环队列

如果普通队列和循环队列的实现都是基于一块连续的线性空间,比如 Python 的 list,对于循环队列而言,它的队列头(head)指向的就未必是物理上的第一个位置,而可以是物理上的任意位置。

def _extend(self):
    old_len = self._len
    self._len *= 2
    new_elems = [0]*self._len
    for i in range(old_len):
        new_elems[i] = self._elems[(i+self._head)%old_len]
    self._elems, self._head = new_elems, 0

2. 树与二叉树

注意区别,空树是没有任何节点的树,只有一个(根节点)结点的树当然不是空树;

  • 空树的高度,需要自定义,一般取 -1

    
    #define stature(p) (p)? (p->height) : -1
    

为二叉树插入新的结点时,需要注意的是,当一个元素被插入到一棵空的二叉树时,需要改变指向根的指针,

SearchTree Insert(ElementType X, SearchTree T) {
    if (!T) {
        T = (SearchTree)malloc(sizeof(struct TreeNode));
        if (!T) ...
        T->Element = X;
        T->Left = T->Right = NULL;
    }
}

3. 二叉树的遍历

不再是:

for (int i = 0; i < t.size; ++i)

而是:

int lc, rc;
for (int i = 0; i*2+1 < t.size; ++i)
        // i*2 + 1 是左孩子
        lc = 2*i + 1;
        if (lc < t.size-1)
            rc = lc + 1;
版权声明:本文为博主原创文章,未经博主允许不得转载。

Hash表实现时的注意事项

后面要忙一段时间的Project,今天又练了一些基础的模板。Hash这个东西,一般的实现方法是,建立Node类,其中next是Node*。然后,在程序中,如果要向表中添加元素,用局部变量的话,必须生成...
  • AllenLSY
  • AllenLSY
  • 2010年02月24日 19:19
  • 651

2017年1月数据结构实训总结

今天进行了数据结构实训的答辩,心里感慨万千。    本次数据结构实训,从3号开始,到现在,确实学到了新的东西,2号拿到项目时,我的表情一定很好看,这么难,还要求让用可视化界面,我天天在实验室怼算法,...
  • bless924295
  • bless924295
  • 2017年01月12日 17:59
  • 431

HDFS元数据

1、元数据(Metadata):维护HDFS文件系统中文件和目录的信息,分为内存元数据和元数据文件两种。NameNode维护整个元数据。 HDFS实现时,没有采用定期导出元数据的方法,而...
  • hao707822882
  • hao707822882
  • 2014年09月25日 17:49
  • 540

hadoop分析之一HDFS元数据解析

1、元数据(Metadata):维护HDFS文件系统中文件和目录的信息,分为内存元数据和元数据文件两种。NameNode维护整个元数据。 HDFS实现时,没有采用定期导出元数据的方法,而是采用元...
  • Vintage_1
  • Vintage_1
  • 2014年08月05日 21:45
  • 1660

在原型继承的时候为什么需要对constructor属性就行修正

为什么要修正constructor属性
  • yaojxing
  • yaojxing
  • 2017年06月23日 00:45
  • 355

图的BFS、DFS算法实现

//TODO
  • xumin330774233
  • xumin330774233
  • 2013年11月06日 23:53
  • 4271

数据结构实现之堆栈实现时的问题的图片

数据结构实现之堆栈实现时的问题的图片
  • guocai_yao
  • guocai_yao
  • 2009年04月07日 22:46
  • 468

mysql 实现时统计 hql

DATE_FORMAT(date,format)     根据format字符串格式化date值。下列修饰符可以被用在format字符串中:     %M     月名字(January……Dec...
  • god123209
  • god123209
  • 2011年12月12日 15:56
  • 1425

数据结构实训-学生成绩管理系统

问题及代码: sty.h void menu(); void select(); void SearchNum(struct stu *head); void SearchName(struc...
  • bgbsniper
  • bgbsniper
  • 2015年12月30日 10:09
  • 800

《数据结构学习与实验指导》4-5:家谱处理

输入说明:输入第1行给出2个正整数N(2
  • henuni
  • henuni
  • 2017年06月26日 22:06
  • 265
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数据结构实现时的注意事项
举报原因:
原因补充:

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