| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1384 人关注过本帖
标题:指针和类的问题
只看楼主 加入收藏
moox
Rank: 2
来 自:福建
等 级:论坛游民
帖 子:92
专家分:93
注 册:2017-1-21
结帖率:82.35%
收藏
 问题点数:0 回复次数:1 
指针和类的问题
我定义了一个链表类,如下
程序代码:
#ifndef LIST_H_INCLUDED
#define LIST_H_INCLUDED
template <typename T>
struct Node
{
    Node(T &x):data(x),next(0){}
    T data;
    Node<T> *next;
};

template <typename T>
class List
{
    Node<T> *head;
public:
    List();
    void insert(T &x);
    void remove(Node<T> *p);
    bool empty();
    ~List();
};
#endif // LIST_H_INCLUDED

程序代码:
template <typename T>
void List<T>::insert(T &x)
{
    Node<T> *pre=head;
    while(pre->next!=0)
    {
        pre=pre->next;
    }
    Node<T> newNode=new Node<T>(x);
    pre->next=newNode;
}

然后,给一个链表的实例,判断链表是否有环。大概如下
程序代码:
#include <iostream>

using namespace std;
#include"List.h"
bool hasCycle(List<int> *link){//判断链表有没有环
    if(link==0) return false;  //用两个指针pFast和pSlow遍历链表,如果两指针相等就有环
    Node<T> *pSlow=link,*pFast=link->next;//这儿错了,但不知道怎么改
    while(pSlow!=0||pFast!=0)
    {
        if(pSlow==pFast) return true;
        pSlow=pSlow->next;
        pFast=pFast->next;
        if(pFast==0) return false;
        pFast=pFast->next;
    }
    return false;
}

int main()
{
    List<int> link;
    for(int i=0;i<9;++i) link.insert(i);
    cout<<hasCycle(link);
    return 0;
}

结构体在class中,怎么设指针指向链表头?
搜索更多相关主题的帖子: 指针 List Node next link 
2018-01-27 22:57
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
收藏
得分:0 
void GetHead(Node<T>*&h)
{
    h=head;
}
这样让h的实参指向表头。没测过,自己去试试看如何。
2018-01-28 21:35
快速回复:指针和类的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.045479 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved