数据结构中的节点到底是啥?

编码之外

共 1241字,需浏览 3分钟

 · 2021-12-18

很多人刚开始学习数据结构的时候,都有这种感觉,我看概念的话觉得都懂了,但是真的让我去实现,自己写代码的话就会感到无从下手。


这其实也是我们学习编程都会遇到的一个问题,就是我看视频或者看书觉得自己都可以看得懂啊,但是让自己写代码的话却写不出来,所以啊,你看的懂和能写出来完全是两码事。


所以啊,平常学习编程一定要多敲代码


很多人在接触链表也就是链式存储这块的时候,会迷惑这个节点咋表示啊,有点抽象啊,还有指针指向,这些看起来比较抽象,用代码?怎么搞啊?


就拿数据结构中的二叉搜索树来说吧,我们要实现它的很重要的一步就是要确定这个节点怎么表示啊,这个怎么搞啊,有点懵啊,我们先来看画图怎么表示的,比如这里有一个二叉搜索树:



你就比如这个,我们该怎么用代码表示呢?


节点该怎么表示


首先啊,你看,我们直观来看,是不是每个节点是一个数据,然后还有指针指向,就是那些箭头,所以最基本的一个节点包括


  1. 数据元素

  2. 箭头(也就是指针,一个节点有两个)


简单来看是不是就是这些,要记住,这是节点包含这些内容,那么这个节点是一个整块的内容,该怎么表示,在java中不就可以使用一个类来表示嘛,也即是这样:


class Node {
       

  }

然后就是包含的里面的东西,首先是数据,这个数据这里暂定为整型类型,然后我们在类里面定义这个数据元素:


class Node {
       int element;
  }

接下来就是数据指针的表示了,很多人会疑惑这个该怎么表示,你想啊,这个指针指向的不也是个节点嘛,这里的节点已经是个Node对象了,那么一个节点里面保存的指针不就是指向另外一个节点嘛,这不就是保存的另一个对象的引用地址嘛,所以我们可以直接在类里面声明节点对象,也即是这样:


class Node {
       int element;
       Node left;
       Node right;
       Node parent;
  }

咋样,是不是看明白了,然后这里还需要记录一个父节点,因为后续的插入啥的要根据父节点来操作,然后我们还需要添加构造函数:


class Node {
       int element;
       Node left;
       Node right;
       Node parent;
       public Node(int element,Node parent) {
           this.element = element;
           this.parent = parent;
      }
  }

如此一来,我们就表示了二叉搜索树的节点。

浏览 130
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报