| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 849 人关注过本帖
标题:[求助]改正一个线形链表的问题
只看楼主 加入收藏
绝对冰点
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2007-9-13
收藏
 问题点数:0 回复次数:3 
[求助]改正一个线形链表的问题

原题目是:两个带头结点的链表a,b。从a中删除从第i个元素起length个元素,并插入到b中第j个元素之前。

用vs2005调试。

#include <iostream>
using namespace std;

//结构体
struct Node
{
int data;
Node *next;
};
int main()
{
//创建链表a
Node *ahead=NULL;
Node *atail=NULL;
Node *pnewa;
for(int a=1;a<10;a++)
{
pnewa=new Node;
if(pnewa==NULL)
{
cout << "memory insufficient!"<<endl;
return NULL;
}
pnewa->data=a;
pnewa->next=NULL;
if(atail==NULL)
ahead =pnewa;
else
atail->next=pnewa;
atail=pnewa;
}
//创建链表b
Node *bhead=NULL;
Node *btail=NULL;
Node *pnewb;
int b;
for(b=1;b<15;b++)
{
pnewb=new Node;
if(pnewb==NULL)
{
cout << "memory insufficient!"<<endl;
return NULL;
}
pnewb->data=b;
pnewb->next=NULL;
if(btail==NULL)
bhead =pnewb;
else
btail->next=pnewb;
btail=pnewb;
}

int i,j,length;
cout <<"intput i,j,length"<<endl;
cin>>i>>j>>length;


//查找a的第i-1个元素
int *pa,ma;
pa=(int*)ahead;
while(ma<i-1&&pa!=NULL)
{
pa=pa->next;
ma++;
}
//查找第i个后length个元素
int *q;
if(pa->next!=NULL)
{
int n;
q=pa->next;
while(n<length&&!q)
{
q=q->next;
n++;
}
}
else
return NULL;

//查找b中第j个元素
int *pb=(int *)bhead;
int mb;
while(mb<j-1&&pb!=NULL)
{
pb=pb->next;
mb++;
}
if(pb!=NULL)
{
q->next=pb->next;
pb->next=pa->next;
}


Node *pNode=bhead;
while(pNode!=NULL)
{
cout <<pNode->data<<'\t';
pNode =pNode->next;
}
}




1>------ 已启动生成: 项目: LaLb, 配置: Debug Win32 ------
1>正在编译...
1>main.cpp
1>d:\my projects\lalb\main.cpp(66) : error C2227: “->next”的左边必须指向类/结构/联合/泛型类型
1> 类型是“int *”
1>d:\my projects\lalb\main.cpp(71) : error C2227: “->next”的左边必须指向类/结构/联合/泛型类型
1> 类型是“int *”
1>d:\my projects\lalb\main.cpp(74) : error C2227: “->next”的左边必须指向类/结构/联合/泛型类型
1> 类型是“int *”
1>d:\my projects\lalb\main.cpp(77) : error C2227: “->next”的左边必须指向类/结构/联合/泛型类型
1> 类型是“int *”
1>d:\my projects\lalb\main.cpp(89) : error C2227: “->next”的左边必须指向类/结构/联合/泛型类型
1> 类型是“int *”
1>d:\my projects\lalb\main.cpp(94) : error C2227: “->next”的左边必须指向类/结构/联合/泛型类型
1> 类型是“int *”
1>d:\my projects\lalb\main.cpp(94) : error C2227: “->next”的左边必须指向类/结构/联合/泛型类型
1> 类型是“int *”
1>d:\my projects\lalb\main.cpp(95) : error C2227: “->next”的左边必须指向类/结构/联合/泛型类型
1> 类型是“int *”
1>d:\my projects\lalb\main.cpp(95) : error C2227: “->next”的左边必须指向类/结构/联合/泛型类型
1> 类型是“int *”
1>生成日志保存在“file://d:\My projects\LaLb\Debug\BuildLog.htm”
1>LaLb - 9 个错误,0 个警告
========== 生成: 0 已成功, 1 已失败, 0 最新, 0 已跳过 ==========


这个错误是什么原因造成的,希望各位帮忙纠正,谢谢

搜索更多相关主题的帖子: 链表 
2007-10-25 20:18
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 
int*的变量,怎么可能有next,把你程序里面的节点都用 Node*定义

从BFS(Breadth First Study)到DFS(Depth First Study)
2007-10-25 20:25
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
int *pa,ma;
pa=(int*)ahead;
你强制类型转换做什么.
之所以要用到结构体是因为要把数据和指针封装起来.
貌似还没理解好结点的意义.

倚天照海花无数,流水高山心自知。
2007-10-25 20:36
绝对冰点
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2007-9-13
收藏
得分:0 
以下是引用nuciewth在2007-10-25 20:36:03的发言:
int *pa,ma;
pa=(int*)ahead;
你强制类型转换做什么.
之所以要用到结构体是因为要把数据和指针封装起来.
貌似还没理解好结点的意义.

确实没理解好结点的意义,

2007-10-25 20:48
快速回复:[求助]改正一个线形链表的问题
数据加载中...
 
   



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

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