- 博客(0)
- 资源 (1)
空空如也
单链表倒数第节点
# include<iostream>
using namespace std;
template <class T>
struct Node
{
T data;
Node *next;
};
template<class T>
class LinkList
{
public:
LinkList();
LinkList(T a[],int n);
int length();
void display();
void searchNode(int k);
private:
Node<T>*first;
};
template<class T>
LinkList<T>::LinkList(T a[],int n)
{
Node<T> *s;
//Node<T> *date;
first=new Node<T>;
first->next=NULL;
for(int i=0;i<n;i++)
{
s=new Node<T>;
s->data=a[i];
s->next=first->next;
first->next=s;
}
}
template <class T>
int LinkList<T>::length()
{
Node<T> *p;
int count=0;
p=first->next;
while(p!=NULL)
{
p=p->next;
count++;
}
return count;
}
template <class T>
void LinkList<T>::display()
{
Node<T> *p;
p=first->next;
while(p!=NULL)
{
cout<<p->data<<" ";
p=p->next;
}
cout<<endl;
}
template <class T>
void LinkList<T>::searchNode(int k)
{
Node<T> *big,*little;
big=first->next;
little=first->next;
for(int i=1;i<k;i++)
{
if(big->next!=NULL)
big=big->next;
}
while(big->next!=NULL)
{
big=big->next;
little=little->next;
}
cout<<"倒数第"<<k<<"个元素为"<<little->data<<endl;
}
void main()
{
int a[100];
int length;
int l;
int k=2;
cout<<"请输入单链表的长度:"<<endl;
cin>>length;
for(int i=0;i<length;i++)
{
a[i]=i+1;
}
cout<<endl;
LinkList<int> list(a,length);
cout<<"单链表为:"<<endl;
list.display();
l=list.length() ;
cout<<"单链表长度为:"<<endl<<l<<endl;
list.searchNode(k);
}
2014-10-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人