zoukankan      html  css  js  c++  java
  • 单链表逆置

    C代码: 单链表逆置

    /*
    Author : glq2000[glq2000@126.com http://hi.baidu.com/bmrs]
    Date : Wen, 2010-7-21
    功能 : 实现单链表的逆置等
    */

    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>

    typedef struct _Node
    {
    int value;
    struct _Node *next;
    }Node, *PNode;

    PNode BuildLink(int n); //构造一个节点数目为n个的链表, 返回链表头指针
    PNode ReverseLink(PNode ph); //单链表的逆置函数,返回新链表的表头指针
    void OutputLink(PNode ph); //输出单链表


    int main()
    {
    PNode phead = BuildLink(10);
    OutputLink(phead);
    phead = ReverseLink(phead);
    OutputLink(phead);

    getchar();
    return 0;
    }


    PNode BuildLink(int n)
    {
    int i;
    PNode ph=NULL, pn;
    for(i=0; i<n; ++i)
    {
    if(!(pn=(PNode)malloc(sizeof(Node))))
    {
    printf("malloc error.\n");
    exit(1);
    }
    pn->value = i;
    pn->next = ph;
    ph = pn;
    }

    return ph;
    }


    void OutputLink(PNode ph)
    {
    while(ph)
    {
    printf("%d ", ph->value);
    ph = ph->next;
    }
    printf("\n");
    }


    //实现单链表逆置的函数
    PNode ReverseLink(PNode ph)
    {
    if(!ph || !(ph->next)) //如果链表为空或者只有一个节点,则直接返回
    return ph;

    PNode pBefore = NULL, pAfter = NULL;
    while(ph)
    {
    pAfter = ph->next;
    ph->next = pBefore;
    pBefore = ph;
    ph = pAfter;
    }
    return pBefore;
    }
  • 相关阅读:
    设置linux session 编码
    在masterpage中添加对usercontrol的引用
    首页的sitecontent地址
    iis的路径
    设置repeater每行多少个的方法
    updatepannel的使用
    取caml查询结果的前多少行
    设置视频自动播放
    网站集与网站
    notepad++ 死机 找到没保存的文件
  • 原文地址:https://www.cnblogs.com/cherri/p/2212827.html
Copyright © 2011-2022 走看看