回 帖 发 新 帖 刷新版面

主题:head 头指针到底是什么定义啊

我想麻烦大家帮我解释一下关于head 头指针的用法,到底它里面可不可以存数据啊,下面有一小段程序体现的就是head 的用法,可我还是不甚了解,希望大家帮我
#include<iostream.h>
#include <stdio.h>
#include <malloc.h>

typedef char datatype;
typedef struct node
{datatype data;
 struct node *next;
}linklist;

linklist *Setnull()
{linklist *head;
 head=(linklist*)malloc(sizeof(linklist));
 head->next=NULL;
 cout<<"the list has bulit up"<<endl;
 return(head);
}
 void main()
 {
     linklist *head1;
     head1=Setnull();
 }
尤其
head-〉next=null这里,我想将它定义成head=null就不可以,为什么啊

回复列表 (共5个回复)

沙发

head=(linklist*)malloc(sizeof(linklist));

如果定义成head=null的话,分配的空间就找不到了


PS:我也不是很懂head,想多了解点

板凳

谢谢你楼上的!

3 楼

可是大家谁能告诉我是否可以在head里面定义结点呢,如果可以的话,又该怎样表现head 为空呢,如果用head->nest!=NULL的话,那如果head里面存在数据该怎么办呢

4 楼

我想再请教大家一个问题;我想将链表中的所有结点依次输出,但是只能显示一个,下面是我的程序,希望大家多提 宝贵意见
 void Show(linklist *head)
{
 char ch;
  if(head==NULL)
  {
      cout<<"there isn't any progress!"<<endl;
      return;
  }
  
  while(head!=NULL)
  {
  cout<<"the progress include:"<<head->data<<endl;
  head=head->next;
  }
  
 }
谢谢大家啦 

5 楼

我认为应该是
先head=head->next
再进行判断

我来回复

您尚未登录,请登录后再回复。点此登录或注册