简述头指针的概念,指针qhead是什么意思

1,指针qhead是什么意思head一般是在链式结构中表示头结点 , 常见的如树的根节点 。在链式结构中 , 有两种head,一种是无头结点的指针类型的head;还有一种是带头结点的head , 一般用前一种比较多 。
2,数据结构中头指针是什么意思一般指链表中的第一个节点,相当于array中的array[0],知道这个节点就可以方便的遍历整个链表 。队列头是指向头元素! 。。顺序队列应该是与顺序表相对应的,是用一个数组来存储的链式队列应该是与链表相对应的,是用链来存储的循环队列就是一个“圆圈” 。。尾指针,指向最后一个元素 。
3,return head 返回创建链表的头指针单向链表返回头指针有何意头指针就是指向链表的首地址,返回首地址就可以对联表进行相关操作,至于头指针里面有没有值,看你自己放不放,无所谓的,不懂hi我跟有没值有什么关系这就相当于返回了该链表的起点跟值没关系这样保存住head啊,下一次还有用的,如果直接改掉head的话后面可能就没法做了【简述头指针的概念,指针qhead是什么意思】
4,关于数据结构中链表头指针的一个问题链表你是非顺序存储结构 。因为数据结构是数据对象+关系所以它必须在每个节点中包含数据元素(数据域)和它的关系(即指针域)链表中的第一个元素就是它的第一个节点 。为了方便链表的操作,这里引入了头结点和头指针所谓头结点就是在第一个节点前的节点,它不存放数据 , 仅仅存放第一个节点的地址 。而头指针就是指向第一个节点的指针,也就是说是第一个节点的地址还有一个概念叫做头结点指针是指向头结点的指针它们的关系很好理解比如 定义一个头节点指针phead都指针p则有p=phead->pnext描述挺对的你只要理解链表的中带不带头节点的问题带头结点就多了一个空的结点指向第一个结点;不论有没有头结点 , 而头指针则是指向第一个结点5,这样理解头指针对吗纠正一下,head是指针,要用head->next写法,另外最后一句也有问题 , 应该是:head->next==null,head的值指向头结点,头结点的指针成员next指向首结点(next保存首结点地址),根据next是否为空来作出判断 。因此类中维护链表时必须时刻注意,当创建链表后必须将首结点地址赋值给head的next指针(链接),当链结点全部删除时,必须将head的next设置为null 。链表的实现一般有两种 , 一种是有一个头节点,另一种是没有头节点,有头节点的链表初始化的时候已经申请了一个链表节点的空间作为头指针 , 比如说用*head代表,那么该链表的第一个元素就是head->next,判断链表是否为null时应该是判断head->next是否为null 。而没有头节点的链表 , 第一个元素也就是链表指针指向的元素,也就是楼主所说的情况 。如楼主说的p=&a , 链表的第一个元素就是a,这时候没有头节点 。对于链表的两种实现来说,如果使用头节点,那么初始化的时候就已经申请了一个节点 , 那么当向链表插入第一个元素的时候只需要按值传递的方式就可以了,但是如果没有头节点就需要按引用传递 。如下:向链表p插入一个元素e的函数 void insert(list *p, elemtype e); //p有头节点 void insert(list **p, elemtype e); //p没有头节点 对于第一种写法无论插入元素时链表p是否为空都可以实现,但是为什么当p没有头节点的时候就需要传递**p呢?因为当p为空的时候,p就应该指向新加入的节点,如果传递的只是*p就无法修改原来的指针p的值了(因为是p是按引用传递的),使用**p的话就可以*p = &newnode,这样就修改了原来的指针p 。解释的有点乱 , 还望楼主采纳啊 。