
c++高手请进!跪求程序纠错!编译连接都是0个error,但输入数据执行后却出现乱码,郁闷中(单链表实现)
代码如下:#include<iostream.h>template<classT>structNode{Tdata;Node<T>*next;};template<cla...
代码如下:
#include<iostream.h>
template<class T>
struct Node
{
T data;
Node<T>*next;
};
template<class T>
class LinkList
{public:
LinkList()
{first=new Node<T>;first->next=NULL;}
LinkList(T a[],int n);
~LinkList();
void Insert(int i,T x);
T Delete(int i);
void PrintList();
private:
Node<T>*first;
};
template<class T>
LinkList<T>::LinkList(T a[],int n)
{
first=new Node<T>;Node<T>*r=first;Node<T>*s;int i;
for(i=0;i<n;i++)
{
s=new Node<T>;s->data=a[i];
r->next=s;r=s;
}
r->next=NULL;
}
template<class T>
LinkList<T>::~LinkList()
{
Node<T>*p=first->next;Node<T>*q;
while(p)
{
q=p->next;delete p;p=q;
}
}
template<class T>
void LinkList<T>::Insert(int i,T x)
{
Node<T>*p=first;int j=0;
while(p&&j<i-1)
{
p=p->next;j++;
}
if(!p)throw"yichang";
else
{
Node<T>*s=new Node<T>;s->data=x;s->next=p->next;p->next=s;
}
}
template<class T>
T LinkList<T>::Delete(int i)
{
int j=0;Node<T>*q;Node<T>*p=first;T x;
while(p&&j<i-1)
{p=p->next;j++;}
if(!p||p->next==NULL)throw"yichang";
else
{
q=p->next;x=q->data;p->next=q->next;delete q;return x;
}
}
template<class T>
void LinkList<T>::PrintList()
{
Node<T>*p=first->next;
int i=1;
if (!p)throw"kongbiao";
while(p)
{
cout<<p->data;
p=p->next;
i++;
}
}
void main()
{
int a[10];int i;
LinkList<int>A();
LinkList<int>B(a,10);
for(i=0;i<10;i++)
{
cout<<"please enter number"<<i<<endl;
cin>>a[i];
}
B.Insert(5,88);
B.Delete(7);
B.PrintList();
} 展开
#include<iostream.h>
template<class T>
struct Node
{
T data;
Node<T>*next;
};
template<class T>
class LinkList
{public:
LinkList()
{first=new Node<T>;first->next=NULL;}
LinkList(T a[],int n);
~LinkList();
void Insert(int i,T x);
T Delete(int i);
void PrintList();
private:
Node<T>*first;
};
template<class T>
LinkList<T>::LinkList(T a[],int n)
{
first=new Node<T>;Node<T>*r=first;Node<T>*s;int i;
for(i=0;i<n;i++)
{
s=new Node<T>;s->data=a[i];
r->next=s;r=s;
}
r->next=NULL;
}
template<class T>
LinkList<T>::~LinkList()
{
Node<T>*p=first->next;Node<T>*q;
while(p)
{
q=p->next;delete p;p=q;
}
}
template<class T>
void LinkList<T>::Insert(int i,T x)
{
Node<T>*p=first;int j=0;
while(p&&j<i-1)
{
p=p->next;j++;
}
if(!p)throw"yichang";
else
{
Node<T>*s=new Node<T>;s->data=x;s->next=p->next;p->next=s;
}
}
template<class T>
T LinkList<T>::Delete(int i)
{
int j=0;Node<T>*q;Node<T>*p=first;T x;
while(p&&j<i-1)
{p=p->next;j++;}
if(!p||p->next==NULL)throw"yichang";
else
{
q=p->next;x=q->data;p->next=q->next;delete q;return x;
}
}
template<class T>
void LinkList<T>::PrintList()
{
Node<T>*p=first->next;
int i=1;
if (!p)throw"kongbiao";
while(p)
{
cout<<p->data;
p=p->next;
i++;
}
}
void main()
{
int a[10];int i;
LinkList<int>A();
LinkList<int>B(a,10);
for(i=0;i<10;i++)
{
cout<<"please enter number"<<i<<endl;
cin>>a[i];
}
B.Insert(5,88);
B.Delete(7);
B.PrintList();
} 展开
1个回答
展开全部
呵呵,main函数里的问题,先输入a数组的值,再用它来初始化B。
void main()
{
int a[10];int i;
LinkList<int>A();
for(i=0;i<10;i++)
{
cout<<"please enter number"<<i<<endl;
cin>>a[i];
}
LinkList<int>B(a,10);
B.Insert(5,88);
B.Delete(7);
B.PrintList();
}
void main()
{
int a[10];int i;
LinkList<int>A();
for(i=0;i<10;i++)
{
cout<<"please enter number"<<i<<endl;
cin>>a[i];
}
LinkList<int>B(a,10);
B.Insert(5,88);
B.Delete(7);
B.PrintList();
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询