文档章节

链表创建与释放

老汉-憨憨
 老汉-憨憨
发布于 2017/03/17 16:59
字数 120
阅读 3
收藏 0
#include <stdio.h>
#include <stdlib.h>

struct node 
{
    int data;
    struct node *next;
};

void printList(struct node *node)
{
    while(node != NULL) {
        printf("%d ", node->data);
        node = node->next;
    }
    printf("\n");
}

void freeList(struct node *node)
{
    struct node *tmp = NULL;
    while(node != NULL) {
        tmp = node;
        node = node->next;
        free(tmp);
        tmp = NULL;
    }
}

void push(struct node **head_ref, int new_data)
{
    struct node *new_node = (struct node *)malloc(sizeof(struct node));
    new_node->data = new_data;
    new_node->next = *head_ref;
    (*head_ref) = new_node;
}

int main(int argc, char *argv[])
{
    struct node *res = NULL;
    push(&res, 15);
    push(&res, 34);
    push(&res, 16);
    push(&res, 11);
    push(&res, 10);
   
    printList(res);
    freeList(res);
    return 0;
}

 

输出结果:

10 11 16 34 15 

 

© 著作权归作者所有

老汉-憨憨
粉丝 20
博文 322
码字总数 68382
作品 0
深圳
程序员
私信 提问
基本数据结构 -- 链表的遍历、查找、插入和删除单

  本文将使用 C 语言来实现一个单链表,并实现遍历、查找、插入、删除等操作。 一、创建一个单链表   首先,定义一个存放结点相关信息的结构体,结构体有两个元素,分别是键值和一个指向...

tongye
04/23
0
0
Redis源码分析(adlist)

源码版本: 源码位置: adlist.h : 数据结构定义。 adlist.c:函数功能实现。 一、adlist简介 Redis中的链表叫(A generic doubly linked list implementation 一个通用的双端链表实现),和普...

yangbodong22011
2017/11/08
0
0
Head First C学习日志 第六章用堆进行动态存储

书中的例子是,在多座岛屿间规划航线,并记录,将岛屿作为节点,数据结构如下 typedef struct island { char *name; char *opens; char *closes; struct island *next;} island; 注意,递归结...

AlexTuan
2016/02/21
68
0
C++ 中什么时候应该在堆上分配资源,什么时候应该在栈上分配?

首先,不知道堆栈的原理,怎么决定这件事呢? 一个由c/c++编译的程序占用的内存分为以下几个部分 栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似...

代码丽莎的微笑
2018/01/23
42
0
nginx源码之内存池

Ngnix内存池结构体和接口定义主要在以下几个文件: core文件夹下的:ngxpalloc.h ngxpalloc.c os/unix文件夹下的:ngxalloc.h ngxalloc.c 内存池相关的核心结构体: struct ngxpoollarge_s { ...

大大美女女
2014/07/01
204
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周一乱弹 —— 人生,还真是到处是意外

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @这次装个文艺青年吧 :#今日歌曲推荐# 分享lil peep的单曲《High School》 《High School》- lil peep 手机党少年们想听歌,请使劲儿戳(这里...

小小编辑
50分钟前
19
2
Spring使用ThreadPoolTaskExecutor自定义线程池及实现异步调用

多线程一直是工作或面试过程中的高频知识点,今天给大家分享一下使用 ThreadPoolTaskExecutor 来自定义线程池和实现异步调用多线程。 一、ThreadPoolTaskExecutor 本文采用 Executors 的工厂...

CREATE_17
今天
6
0
CSS盒子模型

CSS盒子模型 组成: content --> padding --> border --> margin 像现实生活中的快递: 物品 --> 填充物 --> 包装盒 --> 盒子与盒子之间的间距 content :width、height组成的 内容区域 padd......

studywin
今天
7
0
修复Win10下开始菜单、设置等系统软件无法打开的问题

因为各种各样的原因导致系统文件丢失、损坏、被修改,而造成win10的开始菜单、设置等系统软件无法打开的情况,可以尝试如下方法解决 此方法只在部分情况下有效,但值得一试 用Windows键+R打开...

locbytes
昨天
10
0
jquery 添加和删除节点

本文转载于:专业的前端网站➺jquery 添加和删除节点 // 增加一个三和一节点function addPanel() { // var newPanel = $('.my-panel').clone(true) var newPanel = $(".triple-panel-con......

前端老手
昨天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部