#include<iostream>
using namespace std;
struct reserve
{
int num;
reserve *next;
};
reserve *createList(int);
reserve *reserved(reserve *firstHead);
void display(reserve *head);
int main()
{
int n;
reserve *listHead=NULL,*re;
cout<<"请输入个数:"<<endl;
cin>>n;
if(n>0)
listHead=createList(n);
re=reserved(listHead);
display(re);
return 0;
}
reserve *createList(int n)
{
int x;
reserve *head=NULL,*tail=NULL,*temp=NULL;
cout<<"请输入"<<n<<"个数"<<endl;
cin>>x;
head=new reserve;
if(head==NULL)
return head;
else
{
head->num=x;
head->next=NULL;
tail=head;
}
for(int i=0;i<n-1;i++)
{
cin>>x;
temp=new reserve;
if(temp==NULL)
return head;
else
{
temp->num=x;
temp->next=NULL;
tail->next=temp;
tail=temp;
}
}
return head;
}
reserve *reserved(reserve *firstHead)
{
reserve *head=firstHead,*tail=NULL;
reserve *first=new reserve;
if(first==NULL)
return first;
reserve *m=NULL;
reserve *s_first=first; //想用s_first来保存头结点的指针。
while(firstHead->next)
{
m=firstHead;
firstHead=firstHead->next;
}
tail=firstHead; //尾指针给tail
first=tail;
cout<<first->num<<" ";
m->next=NULL;
delete tail;
reserve *temp=NULL;
do
{
firstHead=head;
temp=new reserve;
if(temp==NULL)
return temp;
while(firstHead->next)
{
m=firstHead;
firstHead=firstHead->next;
}
m->next=NULL;
temp=firstHead;
first->next=temp;
first=temp;
cout<<temp->num<<" ";
delete temp;
}while(temp!=head);
return s_first; //头指针返回错了。为什么啊?!!
}
void display(reserve *head)
{
cout<<head->num;
}
C++中带头节点的动态链表,头节点指针内存分配出错
如果没有first = new Node的话,就代表first没有指向一段内存,所以你要引用其中的东西肯定会崩溃,指针必须指向内存,不然就是所谓的野指针,而p指向first,意思是p和first指向同一段内存,其实还是没内存不是?所以出错了,记住一点就是指针必须有指向的内存 ...
C语言链表问题 DEVC++编译出error:too many arguments to functi...
你在main函数内声明了一个int deleteNode();函数,这个表明deleteNode函数是没有参数的。所以你后面的调用才出了问题。其实完全没有必要再声明的呀。
c++中建立链表中的问题 为什么head头指针变化了呢?\/?求大神啊
include<iostream> using namespace std;class User { char *name;public:User() { name = NULL; } User(char *name) { this->name = new char[strlen(name) + 1];strcpy(this->name,name);} User(const User &user) { name = new char[strlen(user.name) + 1];strcpy(name,user....
C++中关于局部指针的问题
getptr函数运行完毕后p变量是会被释放的,但是p->next代表的是你的链表中其中一个节点的指针域,这个可不是局部变量,而是链表本身的数据,返回它的引用没有任何问题。
c++链表问题
还是 [25 | ]--->[ ? | ? ]?问号代表不知道 答:S->link的值发生改变,指向了一个新的内存区域。如果r=s->link会是什么样的结构?答:链表的结构就是图中所示了,r就是S的指针域指向的下一个节点。提示:r的指针域不为NULL,不能作为链表的尾节点哦,要给r->link=NULL;...
c++ 链表 删除各种情况节点问题。。。求教。。在线等。。。
一、结尾节点无法删除的问题,你可以想象一个只有三个节点的链表,结尾节点的ID=findid,开始时,p指向第二个节点,然后执行到第一个if时,由于p->next->ID==findid,于是执行第二个if语句,但是此时p->next->next是等于NULL的,所以删除节点的代码没被执行。二、当只有一个结点时,因为一开始定义...
新手在关于C++程序中指针编程中遇到一问题,求各位大虾不吝赐教...
student *head=NULL;student *p[6];student.p[0]=head; 这一句有问题,应是 p[0] = head;另外,请将报错内容贴上 应该就是上面一句的问题,你改后试试
c++多项式加法 链表
void Input(int X[],int Z[],int *n);void Show(int X[],int Z[],int n);void Add(int XA[],int ZA[],int nA,int XB[],int ZB[],int nB,int XC[],int ZC[],int *nC);void Sort(int X[],int Z[],int n);int main(){ int HAzhishu[N]={0};int HAxishu[N]={...
c语言链表空间分配的问题,邀请诸位高手共析~
接着p->next = s; \/\/把pNode型指针s赋值给p->next。 p = p->next;\/\/看起来没问题。但实际上s中没申请出next的空间,你后面接着构建链表。p->next = s;就是指针p强行访问了没有权限的空间(也就是访问了没申请出来的next空间,即p->next = s)。但是构建出来的是错误的链表。当你free时,系统就从...
怎样更好的理解C++中的链表的使用?
首先,我们把链表的节点比喻成火车的车厢。每节车厢的前面都有一个钩子,我们把这想想成指针,他用来连接上一节车厢。接着,使用尾插法的话,也就是先要找到火车尾,即链表的尾指针。然后把自己要加进去的车厢挂到火车的最后面。最后标记这节车厢为火车尾(把地址赋值给尾指针)。使用头插法的话,...