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
    请按任意键继续. . .
  • 相关阅读:
    拓扑排序模板
    杭电 2066 一个人的旅行
    杭电 1596 find the safest road (最小路径变形求最大安全度)
    【状态压缩DP】【BZOJ1087】【SCOI2005】互不侵犯king
    【bzoj1001】【最短路】【对偶图】【最大流转最小割】狼抓兔子题解
    [BZOJ1179][APIO2009][强连通分量Tarjan+spfa]ATM
    [BZOJ1194][HNOI2006][强连通分量Tarjan+dfs]潘多拉的盒子
    说一说ST表 讲一讲水题
    【强连通分量】tarjan算法及kosaraju算法+例题
    对拍程序讲解及源码举例
  • 原文地址:https://www.cnblogs.com/eiguleo/p/3879116.html
Copyright © 2011-2022 走看看