zoukankan      html  css  js  c++  java
  • 单链表练习

    //code:
    #include
    #include
    using namespace std;
    typedef int status;
    typedef int elemType;
    typedef struct lNode
    {
    elemType  num;
    struct lNode *next;
    }lNode,*linkNode;
     
    linkNode initListNode();
    void echNode(linkNode L);
    linkNode insertNode(linkNode L);
    void creatList(linkNode L,int n);
    void echList(linkNode L);
    linkNode delNode(linkNode L,int n);
    linkNode searchNode(linkNode head,int n);
    int main()
    {
     
    linkNode l,m;
    l=initListNode();
    printf("After Initialization: ");
    echNode(l);
    printf(" Creat and echo List: ");
    creatList(l,4);
    echList(l);
    printf(" Find 2nd elemet: ");
    m=searchNode(l,2);
    printf("Find result: ");
    echNode(m);
    printf(" Delt nodes and echo List ");
    m=delNode(l,1);
    m=delNode(m,1);
    echList(m);
    }
     
    linkNode initListNode()
    {
    linkNode L;
    L=(linkNode)malloc(sizeof(lNode));
    L->num=0;
    L->next=NULL;
    return L;
    }
    void creatList(linkNode L,int n)
    {
    int i;
    for(i=0;i
    {
    L=insertNode(L);
    L->num=i+1;//num value
    }
    }
     
    void echNode(linkNode L)
    {
    printf("Node num is %d ",L->num);
    }
    linkNode insertNode(linkNode L)
    {
    linkNode tmpp;
    tmpp=(linkNode)malloc(sizeof(lNode));
    //tmpp->num=9;
    tmpp->next=NULL;
    L->next=tmpp;
    return tmpp;
    }
     
    void echList(linkNode L)
    {
    linkNode tmpp;
    tmpp=L;
    do
    {
    echNode(tmpp);
    tmpp=tmpp->next;
    }
    while(tmpp);
    }
     
    linkNode searchNode(linkNode head,int n)
    {
    linkNode tmpp;
    tmpp=head;
    //printf(" Search %dnd element!! ",n);
    while(--n)
    {
    if(tmpp->next)
    {
    tmpp=tmpp->next;
    }
    else
    {
    //cout<<"Over max quantity of Nodes of the List";
    exit(0) ;
    }
    }
    //printf("The num is %d. ",tmpp->num);
    return tmpp;
    }
     
    linkNode delNode(linkNode head,int n)
    {
    linkNode tmpp,nodep;
    if(n>1)
    {
    tmpp=searchNode(head,n-1);
    nodep=tmpp->next;
    tmpp->next=tmpp->next->next;
    free(nodep);
    return head;
    }
    else if(n=1)
    {
    tmpp=head->next;
    free(head);
    return tmpp;
    }
    }
    result:
    After Initialization:
    Node num is 0
     
    Creat and echo List:
    Node num is 0
    Node num is 1
    Node num is 2
    Node num is 3
     
    Find 2nd elemet:
    Find result:
    Node num is 1
     
    Delt nodes and echo List
    Node num is 2
    Node num is 3
    请按任意键继续. . .
  • 相关阅读:
    ....
    CodeForces 375A(同余)
    POJ 2377 Bad Cowtractors (最小生成树)
    POJ 1258 AgriNet (最小生成树)
    HDU 1016 Prime Ring Problem(全排列)
    HDU 4460 Friend Chains(bfs)
    POJ 2236 Wireless Network(并查集)
    POJ 2100 Graveyard Design(尺取)
    POJ 2110 Mountain Walking(二分/bfs)
    CodeForces 1059B Forgery(模拟)
  • 原文地址:https://www.cnblogs.com/eiguleo/p/3879116.html
Copyright © 2011-2022 走看看