首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于链表头结点的有关问题

2013-01-06 
关于链表头结点的问题template class Tstruct LinkNode{T dataLinkNode T * linkLinkNode (){}...}

关于链表头结点的问题
template <class T>

struct LinkNode{
T data;
LinkNode <T> * link;
LinkNode (){};
      .
      .
      .


};

请问下在这个结构体中又用本身声明的link指针是什么类型的,
这样的结构体怎么应用呢
我这样试了一下结果错的一塌糊涂。
struct Link
{
int a;
Link * b;
};

int main(int argc, char* argv[])
{
Link * p;
p->a=5;
cout<<p->a<<endl;

return 0;
}

各位前辈帮忙解答下吧。。另外还请各位给我提些学习建议。不胜感激
[解决办法]

引用:
template <class T>

struct LinkNode{
T data;
LinkNode <T> * link;
LinkNode (){};
      .
      .
      .


};

请问下在这个结构体中又用本身声明的link指针是什么类型的,
这样的结构体怎么应用呢
我这样试了一下结果错的一塌糊涂。
struct Link
……


结构体中又用本身声明的link指针是什么类型的?
这个一般保存的是下一个结点的指针地址。

main函数里,"Link * p"都没有为其分配内存空间,当然会错了!用malloc分配就行
[解决办法]
又是模板又是链表,做为初学者,楼主还是很勇于挑战自多的嘛

struct Link{
    int a;
    Link * b;     // b为一个指向Link构造体的指针,所以是Link类型的
}

int maiin( int argc, char * args[] ){
    Link * p;     // 很遗憾,这里只定义了指针,却没有分配空间。就好象你拿到了钥匙,却不知道房间在哪,当然不能住人
    p = ( Link * )malloc( sizeof( struct Link ) );   // 这是我加的,为指针分配空间
    p->a = 5;
    ......
}

哦,最后提醒一下,程序结束时别忘了释放空间

热点排行