单链表

来源:互联网 发布:淘宝存在隐形降权吗 编辑:程序博客网 时间:2024/06/03 12:54
#include<iostream>#include<cstdio>#include<stdlib.h>#include<malloc.h>#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1#define OVERFLOW -2typedef int ElemType;typedef int Status;typedef struct LNode{    ElemType data;    struct LNode* next;}LNode,*LinkList;//L为带头节点的单链表的头指针 Status GetElem_L(LinkList L,int i,ElemType &e){     LinkList p=L->next;     int j=1;     while(p&&j<i){            p=p->next;            ++j;     }     if(!p)return ERROR;     e=p->data;     return OK;}//采用头插法 Status ListInsert_L(LinkList L,int i,ElemType e){    LinkList p=L;    int j=0;    while(p&&j<i-1){        p=p->next;        j++;    }    if(!p||j>i-1)return ERROR;    LinkList s=(LinkList)malloc(sizeof(LNode));    s->data=e;    s->next=p->next;    p->next=s;    return OK;}Status ListDelete_L(LinkList &L,int i,ElemType&e){    LinkList p=L;    int j=0;    while(p->next&&j<i-1){        p=p->next;        j++;    }    if(!(p->next)||j>i-1)return ERROR;    LinkList q=p->next;    p->next=q->next;    e=q->data;    free(q);    return OK;}void createLinkList(LinkList&L,int n){    L=(LinkList)malloc(sizeof(LNode));    L->next=NULL;    for(int i=0;i<n;i++){        LinkList p=(LinkList)malloc(sizeof(LNode));        scanf("%d",&p->data);        p->next=L->next;        L->next=p;    }}void mergeList(LinkList LA,LinkList LB,LinkList&LC){    LinkList pa=LA->next,pb=LB->next,pc;    pc=LC=LA;    while(pa&&pb){        if(pa->data<=pb->data){            pc->next=pa;            pc=pa;            pa=pa->next;        }else{            pc->next=pb;            pc=pb;            pb=pb->next;        }     }    pc->next=pa?pa:pb;} //遍历 void Reverse(LinkList linkList){    LinkList p=linkList->next;    while(p){        printf("%d ",p->data);        p=p->next;    }}int main(){    LinkList list;    createLinkList(list,10);    Reverse(list);    return 0;}
原创粉丝点击