***************************************************

更多精彩,欢迎进入:http://shop115376623.taobao.com

***************************************************

对链表的理解:http://www.nowamagic.net/librarys/veda/detail/2220

#include <stdio.h>

//结构体,用整数作数据

//定义节点

typedef struct tNODE
{
    int data;
    struct tNODE *next;
}NODE;

//删除 链表 ,回收空间
void clear(NODE *head)
{
    NODE *p;
    while(head)
    {
        p=head->next;//保存下一个结点的地址
        free(head);//删除最先的一个结点
        head=p;//指向下一个结点
    }
}

//输出整个 链表 中的数据
void write(NODE *head)
{
    NODE *p;
    p=head->next;//因为使用带 头结点 的 链表 ,所以要跳过第一个结点
    while(p)
    {
        printf("%d ", p->data);
        p=p->next;//后移
    }
    printf("\n");
}

// 链表 逆序
void reverse(NODE *head)
{
    NODE *p, *q, *r;
    if(head->next)//至少有一个数据
    {
        p=head->next;//p指向第一个数据结点
        q=p->next;//q指向第二个结点
        p->next=NULL;//第一个结点逆序后当然就是最后一个
        while(q)
        {
            r=q->next;//r指向第三个结点
            q->next=p;//第二个结点的链指针指向第一个
            p=q;//p指向第二个结点
            q=r;//q指向第三个结点
        }
        head->next=p;//让始终没理的 头结点 连到最后一个结点上
    }
}

//生成 链表 ,以-1表示结束
NODE *create()
{
    NODE *h, *t;
    int x;
    h=malloc(sizeof(NODE));//建立 头结点
    t=h;
    scanf("%d", &x);
    while(x!=-1)
    {
        t->next=malloc(sizeof(NODE));
        t=t->next;
        t->data=x;
        scanf("%d", &x);
    }
    t->next=NULL;
    return h;
}

int main()
{
    NODE *head;
    head=create();
    write(head);
    reverse(head);
    write(head);
    clear(head);
    return 0;
}

链表创建、逆置、删除详解相关推荐

  1. 【数据结构】单链表逆置的详解

    单链表的逆置 将单链表逆置: 定义一个前指针和一个后指针用来辅助工作指针 //头文件 #ifndef LINKLIST_H_INCLUDED #define LINKLIST_H_INCLUDEDst ...

  2. python创建双链表_Python双链表原理与实现方法详解

    本文实例讲述了Python双链表原理与实现方法.分享给大家供大家参考,具体如下: Python实现双链表 文章目录 Python实现双链表 单链表与双链表比较 双链表的实现 定义链表节点 初始化双链表 ...

  3. 序列内置方法详解(string/list/tuple)

    一.常用方法集合 1.1.string,字符串常用方法 以下举例是python2.7测试: 函数名称 作用 举例 str.capitalize() 字符串第一个字符如果是字母,则把字母替换为大写字母. ...

  4. python3 内置函数详解

    内置函数详解 abs(x) 返回数字的绝对值,参数可以是整数或浮点数,如果参数是复数,则返回其大小. # 如果参数是复数,则返回其大小.>>> abs(-25) 25>> ...

  5. 试写一算法,对单链表进行逆置

    NOTICE: 本篇代码是按照源码的书写顺序所写,复制之后可直接运行. 环境: vscode 题目: 试写一算法,对单链表进行逆置 分析: 单链表的逆置需要设置两个指针,第一个进行遍历单链表:第二个进 ...

  6. Python内置函数详解——总结篇

      引 言 国庆期间下定决心打算学习Python,于是下载安装了开发环境.然后问题就来了,怎么开始呢?纠结一番,还是从官方帮助文档开始吧.可是全是英文啊,英语渣怎么破?那就边翻译边看边实践着做吧(顺便 ...

  7. 无头结点单链表的逆置_单链表的增删查 逆置 倒数第k个节点等问题

    对于单链表而言,它没有双链表那么复杂,它只有头节点,尾节点,节点数据,后继指针.在下面本人实现了 单链表的 增   删   插  查  改. #include #include #include #i ...

  8. 创建emp表 oracle,Oracle中创建和管理表详解

    Oracle中创建和管理表详解 更新时间:2013年08月01日 15:44:16   作者: 以下是对Oracle中的创建和管理表进行了详细的分析介绍,需要的朋友可以过来参考下 SQL> /* ...

  9. SDUT_2118 数据结构实验之链表三:链表的逆置

    点击打开链接 数据结构实验之链表三:链表的逆置 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem De ...

  10. python列表的内置方法_Python内置方法详解

    1. 字符串内置方法详解 为何要有字符串?相对于元组.列表等,对于唯一类型的定义,字符串具有最简单的形式. 字符串往往以变量接收,变量名.可以查看所有的字符串的内置方法,如: 1> count: ...

最新文章

  1. 多元统计分析最短距离法_聚醚多元醇的合成
  2. 2014-3-13 星期四 晴 [取舍 果断]
  3. Linux中sort、uniq、cut、wc命令详解
  4. context set_parameter all_req_parameters /iwfnd/if_sodata_types=gcs_iwf_context
  5. 智能会议系统(24)---linphone-去掉蓝牙功能
  6. 修改tomcat控制台title的方法
  7. 操作系统 第二章 进程管理
  8. 轻薄于型 强悍于内 拯救者9000X 2021硬核发布
  9. 比特币创业公司Circle首获数字货币许可证
  10. ×××购回“四不像”笔记本
  11. java矩阵连乘算法_矩阵连乘(java实现)
  12. MRI_Made_Easy 磁共振成像原理-物理基础4
  13. Thinkphp5中session用法
  14. Vue3中获取鼠标在浏览器x轴和y轴的位置
  15. 工作效率低,怎么办?
  16. 【Data truncation: Data too long for column ‘XXX at row 1 报错】
  17. 创业过程中不要被理想主义所牵绊
  18. python账号怎么注销_登录后如何注销
  19. 基于Python实现的实时聊天系统
  20. 05 占空比可调的整数奇偶分频器设计与功能验证(附源码)

热门文章

  1. C#任务调度——LimitedConcurrencyLevelTaskScheduler
  2. AC日记——字符串P型编码 openjudge 1.7 31
  3. Protocol Buffer技术详解(C++实例)
  4. BZOJ4107 : [Wf2015]Asteroids
  5. [其它] - 为什么中国的程序员技术偏低
  6. Delphi纯代码连SQLite数据库,同时支持数据库的加密解密
  7. 一份从 0 到 1 的 Java 项目实践清单
  8. 分析数据库CitusDB:提供弹性计算能力
  9. python cookbook 笔记三
  10. 【原创】注意析构函数的使用