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

各位高人,请问一下,如果想使这个程序可以任意输入数字,然后再逆置,要如何改呢?

#include<iostream>
using namespace std;

struct node
{
int data;
node *pre;
};
class mylist
{
private:
node *head;
node *tail;
int size;
public:
mylist(){head=NULL;tail=NULL;size=0;}
void push_back(int a);
int pop_back();
};
void mylist::push_back(int a)
{
node *p;
p=new node;
p->data =a;
p->pre=tail;

tail=p;
if(head==NULL){head=p;head->pre=NULL;}
size++;
}
int mylist::pop_back()
{
node *p,p1;
p=head;
int temp;
if(head==tail)
{
temp=tail->data;
delete tail;
tail=NULL;
head=NULL;
}
else
{
temp=tail->data;
p=tail;
tail=tail->pre;
delete p;
}
return temp;
}
int main()
{
mylist a;
for(int i=0;i<10;i++)
a.push_back(i);
for(i=0;i<10;i++)
cout<<a.pop_back()<<endl;
}



搜索更多相关主题的帖子: 链表 
2006-10-22 19:47
wangxiang
Rank: 2
等 级:新手上路
威 望:5
帖 子:376
专家分:0
注 册:2006-3-28
收藏
得分:0 

这不是链表啊,这是队列,我想题目的意思是要让你做成双端队列的.
我没有做成双端对立,只是对你的程序加了个函数
#include<iostream>
using namespace std;

struct node
{
int data;
node *pre;
};
class mylist
{
private:
node *head;
node *tail;
int size;
public:
mylist(){head=NULL;tail=NULL;size=0;}
void push_back(int a);
int pop_back();
int pop_pre();
};
void mylist::push_back(int a)
{
node *p;
p=new node;
p->data =a;
p->pre=tail;

tail=p;
if(head==NULL){head=p;head->pre=NULL;}
size++;
}
int mylist::pop_back()
{
node *p;
p=head;
int temp;
if(head==tail)
{
temp=tail->data;
delete tail;
tail=NULL;
head=NULL;
}
else
{
temp=tail->data;
p=tail;
tail=tail->pre;
delete p;
}
size--;
return temp;
}
int mylist::pop_pre()
{
node *p = head;
int temp = p->data;
p = tail;
for(int i = size;i >2;--i)
p = p->pre;
node *q = head;
head = p;
delete q;
size--;
return temp;
}
int main()
{
mylist a;
for(int i=0;i<10;i++)
a.push_back(i);
for(i=0;i<10;i++)
cout<<a.pop_pre()<<endl;
return 0;
}


2006-10-22 21:03
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
node *p,q;
p=0;
while(head!=NULL)
{
q=head;
head=head->next;
q->next=p;
p=q;
}


嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-10-22 21:20
快速回复:[求助]关于链表逆置
数据加载中...
 
   



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

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