# 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); }
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助