满意答案
szstrongman
2014.12.09
采纳率:49% 等级:12
已帮助:4403人
#include using namespace std; class LinkNode //节点类 { public: int data; //系数 LinkNode *next; LinkNode(int k=0) { data=k; next=NULL; } ~LinkNode() {} }; class LinkList //链表类 { public: LinkNode *head; LinkList(int n); ~LinkList(); void output(); int Getlength(); int InsertElem(int d); }; LinkList::LinkList(int n) //链表类的构造函数 ,创建一条单链表 { head=NULL; if(n>0) { int i=1; LinkNode *rear,*q; head=new LinkNode(i++); rear=head; while(i<=n) { i=i+2; q=new LinkNode(i); rear->next=q; rear=q; } } } LinkList::~LinkList() //链表类的析构函数,删除一条单链表 { LinkNode *p=head,*q; while(p!=NULL) { q=p; p=p->next; delete q; } head=NULL; } int LinkList::Getlength() //获得链表长度,并返回 { int i=0; LinkNode *p=head; while(p!=NULL) { p=p->next; i++; } return i; } int LinkList::InsertElem(int d) //插入一个元素,并自动按升序插入 { bool flag=0; LinkNode *p=head,*p_prior=NULL; while(flag==0) { if(d<=p->data) { //p->next=p; LinkNode *q=new LinkNode; q->data=d; p_prior->next=q; q->next=p; flag=1; } else { p_prior=p; p=p->next; } } flag=0; } void LinkList::output() { LinkNode *p=head; while(p!=NULL) { cout<data<next; } cout<
00分享举报