#include #include #define ERROR#define OKtypedef int ElemType;typedef struct Lnode{ ElemType data; struct Lnode *next;}Lnode,*Linklist;void
#include #include #define ERROR#define OKtypedef int ElemType;typedef struct Lnode{ ElemType data; struct Lnode *next;}Lnode,*Linklist;void CreateList(Linklist &l,int n) //用尾插法建立一个带头结点的单向链表l{ Linklist p,s; l=(Linklist)malloc(sizeof(Lnode)); l->next=NULL; p=l; for (int i=1;i>s->data; s->next=NULL; p->next=s; p=s; }}void Traverse(Linklist l) //遍历单向链表l{ Linklist p=l->next; while (p) { coutnext; }}void Reverse(Linklist &l) //单向链表的逆置{ Linklist p,r,pre; p=l->next; pre=NULL; while(p) { r=p->next; p->next=pre; pre=p; p=r; } l->next=pre;}void Delete(Linklist &l) //在单向链表中删除所有偶数元素的结点{ if(!l) { return ERROR; } int count=-1; Linklist p; p=l; while((p->next)&&(p->next->next)) { count ; if(count%2==0) { p->next=p->next->next; count ; } if(count>1) { p=p->next; } return OK; } }void main(){ Linklist l; int n; cout>n; CreateList(l,n); cout<
展开
全部