数据结构问题 在邻接表中啥是表节点?啥是表头节点?啥是头节点?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构问题 在邻接表中啥是表节点?啥是表头节点?啥是头节点?相关的知识,希望对你有一定的参考价值。

邻接表,存储方法跟树的孩子链表示法相类似,是一种顺序分配和链式分配相结合的存储结构。如这个表头结点所对应的顶点存在相邻顶点,则把相邻顶点依次存放于表头结点所指向的单向链表中。

对于无向图来说,使用邻接表进行存储也会出现数据冗余,表头结点A所指链表中存在一个指向C的表结点的同时,表头结点C所指链表也会存在一个指向A的表结点。

数据结构中,在单链表的第一个结点之前附设一个结点,它没有直接前驱,称之为头结点。

扩展资料:

头结点是链表里面第一个结点,他的数据域可以不存放任何信息(有时候也会存放链表的长度等等信息),他的指针区域存放的是链表中第一个数据元素的结点(就是传说中的首元结点)存放的地址。

1、防止单链表是空的而设的.当链表为空的时候,带头结点的头指针就指向头结点.如果当链表为空的时候,头结点的指针域的数值为NULL.

2、是为了方便单链表的特殊操作,插入在表头或者删除第一个结点.这样就保持了单链表操作的统一性!

3、单链表加上头结点之后,无论单链表是否为空,头指针始终指向头结点,因此空表和非空表的处理也统一了,方便了单链表的操作,也减少了程序的复杂性和出现bug的机会[1] 。

4、对单链表的多数操作应明确对哪个结点以及该结点的前驱。不带头结点的链表对首元结点、中间结点分别处理等;而带头结点的链表因为有头结点,首元结点、中间结点的操作相同,从而减少分支,使算法变得简单,流程清晰。

对单链表进行插入、删除操作时,如果在首元结点之前插入或删除的是首元结点,不带头结点的单链表需改变头指针的值,在TurboC算法的函数形参表中头指针一般使用指针的指针(在C++中使用引用&);

而带头结点的单链表不需改变头指针的值,函数参数表中头结点使用指针变量即可,对初学者更易接受。

参考资料来源:百度百科-头结点

参考资料来源:百度百科-邻接表

参考技术A

邻接表是图的一种最主要存储结构,用来描述图上的每一个点。

参见http://baike.baidu.com/view/549594.htm

再给你看一下数据结构的课件解释

第二个图是个标准的邻接表实例  右上角是图,共有5个点,v1到v5

按照每个点来建立单链表组成邻接表。

首先 以v1作为头结点,和v1相邻的有v2和v4,则v1指向地址3即v3,v2的指向地址1即v2,v2指向空说明单链表结束。以此类推构成整个邻接表。

追问

哪表头节点是什么?

 

这个是表节点?

这个是头节点对吗?

追答

第一个是头结点 第二个是表结点

本回答被提问者和网友采纳
参考技术B

邻接表是图的一张链式存储结构 。 邻接表中,对图中每个顶点建立一个单链表 ,每个结点由3个域组成每个链表上附设一个表头结点。

一个表结点由三部分组成               头结点两部分组成

adjvex  nextarc  info          data  firstarc

在Java中啥是<>符号[重复]

【中文标题】在Java中啥是<>符号[重复]【英文标题】:In Java What is the < > notation [duplicate]在Java中什么是<>符号[重复] 【发布时间】:2013-01-18 14:13:38 【问题描述】:

可能重复:What does Map<?, ?> mean in Java?Java Generics - What is this syntax for?

例如,我想知道 &lt; &gt; 在 Java 中的作用是什么。

public static class Map extends MapReduceBase 
    implements Mapper<LongWritable, Text, Text, IntWritable>

我不是任何方面的 Java 专家。对于使用&lt; &gt; 符号背后的原因,我希望您能提供一些明确的答案。

【问题讨论】:

你可能想读一下 -> docs.oracle.com/javase/tutorial/java/generics 看:docs.oracle.com/javase/tutorial/java/generics/types.html 用什么指令来证明对这类新手问题投了这么多票是合理的? @downvoters:这不是一个特别容易搜索的东西......当然,任何中级 Java 教程都会涵盖它,但仍然看起来相当苛刻...... @EricLeschinski 投反对票,因为一个使用 Hadoop 接口的人不知道泛型......不是 hello world 程序...... 【参考方案1】:

它表示泛型。 Mapper 是一个泛型,您从 Mapper&lt;LongWritable, Text, Text, IntWritable&gt; 继承,这是专门针对这些类型的泛型。

就像Vector - 也是通用的 - 你可以有Vector&lt;Object&gt;Vector&lt;SomeOtherClass&gt;

【讨论】:

以上是关于数据结构问题 在邻接表中啥是表节点?啥是表头节点?啥是头节点?的主要内容,如果未能解决你的问题,请参考以下文章

C语言中啥是索引??

解释mysql中啥是索引?它的作用是啥?

labview中啥是严格类型VI,怎样创建严格类型VI

在这个用例中啥是数据仓库

数据库中啥是主关键字?主关键字与外关键字的区别与联系?

在 MVC 模型中啥是有效的数据访问的良好平衡?