| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 460 人关注过本帖
标题:大神帮我看看简单的链表哪里错了
取消只看楼主 加入收藏
宋立鹏
Rank: 2
等 级:论坛游民
帖 子:30
专家分:16
注 册:2012-7-5
结帖率:85.71%
收藏
已结贴  问题点数:20 回复次数:1 
大神帮我看看简单的链表哪里错了
#include <iostream>
#include "windows.h"
using namespace std;

struct Node
{
    int data;
    Node* next;
};
class List
{
public:
    Node* head;
public:
    List(){head=NULL;};
    void insertList(int aData,int bData);
    void deleteList(int aData);
    void outputList();
    Node* getHead(){return head;}
};
void List::insertList(int aData, int bData)
{
    Node *p,*q,*s;
    s=(Node*)new(Node);
    s->data=bData;
    p=head;
    q=head;
    if(head==NULL)
    {
        head=s;
        s->next=NULL;
    }
    else
if(p->data==aData)
        {
            p->next=s;
            head   =p;
            cout<<"dd"<<endl;
        }
        else
        {
            ///////////////以下为错误出现的地方,我是想在某个节点后面插入一个新的节点,但是老出现错误
                               结果我会贴在后面/////////////////////////
            while(p->data!=aData&&p->next!=NULL)
            {
                p=p->next;
            }
            if(p->data==aData)
            {
                s->next=p->next;
                p->next=s;
            }
            else
            {
                return;
            }
     }
        }
void List::deleteList(int aData)
{
    Node *p,*q,*s;
    /*s=(Node*)new(Node);
    s->data=bData;*/
    p=head;
    if(head==NULL)
        return;
    else
        if(p->data==aData)
        {
            head=p->next;
            delete p;
            cout<<"aa"<<endl;
        }
        else
            while(p->data!=aData&&p->next!=NULL)
            {
                q=p;
                p=p->next;
            }
            if(p->data==aData)
            {
                q->next=p->next;
                delete p;
            }



}
void List::outputList()
{
    Node* current=head;
    while(current!=NULL)
    {
        cout<<current->data<<" ";
        current=current->next;
    }
    cout<<endl;
};
/////////////以下为主函数////////////////
#include <iostream>
#include "List.h"
using namespace std;
void main()
{
    List A,B;
    int data[10]={1,2,3,4,5,6,7,8,9,10};
    A.insertList(0,data[0]);
    A.insertList(data[0],data[1]);
    A.insertList(data[1],data[2]);
    A.insertList(data[2],data[3]);
    A.insertList(data[3],data[4]);
    cout<<"aaa"<<endl;
    A.deleteList(data[2]);
    cout<<"ddd"<<endl;
    A.outputList();
   
}

下面是运行结果
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: include public return 
2013-09-28 22:30
宋立鹏
Rank: 2
等 级:论坛游民
帖 子:30
专家分:16
注 册:2012-7-5
收藏
得分:0 
回复 4楼 qunxingw
同意你的看法,多谢
2013-09-29 13:16
快速回复:大神帮我看看简单的链表哪里错了
数据加载中...
 
   



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

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