云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 单链表(带头结点)

单链表(带头结点)

  • 62 次阅读
  • 3 次下载
  • 2025/5/7 18:20:23

一.单链表 (带头结点): 1.头插

/***************************************************** copyright (C), 2014-2015, Lighting Studio. Co., Ltd. File name:

Author:Jerey_Jobs Version:0.1 Date: Description:带表头节点的单链表( 头插 ) Funcion List:

*****************************************************/

#include #include #include

struct node /*定义链表节点*/ {

int num;

struct node *next; };

typedef struct node Node ; /*简化表示链表节点*/ typedef struct node *Link;

void is_malloc_ok( Link *new_node ) /*为新节点申请内存*/ {

if( (*new_node) == NULL ) {

printf( \ exit(-1); } }

void create_link( Link *head ) /*创建带头节点的新的链表*/ {

( *head ) = ( Link )malloc( sizeof( Node ) ); is_malloc_ok( head ); ( *head ) -> next = NULL; }

void insert_node_head( Link *head, Link *new_node ) /*头插*/ {

(*new_node) -> next = (*head) -> next ;

(*head) -> next = *new_node; }

void display_link( Link *head ) /*遍历*/ {

Link tmp;

tmp = (*head) -> next ;

if( tmp == NULL ) {

printf( \ return ; }

while( tmp != NULL ) {

printf( \ tmp = tmp -> next; } }

void create_new_node( Link *new_node , int i ) {

(*new_node) = (Link)malloc(sizeof(Node)); is_malloc_ok( new_node ); (*new_node) -> num = i; }

void release_link( Link *head ) {

Link tmp; tmp = *head;

while( *head != NULL ) {

(*head) = (*head) -> next ; free(tmp);

tmp = (*head) ; } }

int main() {

Link head = NULL ;

Link new_node = NULL ; int i;

/*创建新的节点*/ /*释放*/ int num ;

create_link( &head );

for( i = 0; i < 10; i++ ) {

create_new_node( &new_node , i);

insert_node_head( &head, &new_node ); }

display_link( &head );

release_link( &head ); return 0; }

2.尾插

/***************************************************** copyright (C), 2014-2015, Lighting Studio. Co., Ltd. File name:

Author:Jerey_Jobs Version:0.1 Date: Description:带表头节点的单链表( 尾插 ) Funcion List:

*****************************************************/

#include #include #include

struct node /*定义链表节点*/ {

int num;

struct node *next; };

typedef struct node Node ; /*简化表示链表节点*/ typedef struct node *Link;

void is_malloc_ok( Link *new_node ) /*为新节点申请内存*/ {

if( (*new_node) == NULL ) {

printf( \ exit(-1); } }

void create_link( Link *head ) /*创建带头节点的新的链表*/ {

( *head ) = ( Link )malloc( sizeof( Node ) ); is_malloc_ok( head ); ( *head ) -> next = NULL; }

void insert_node_tail( Link *head, Link *new_node ) {

Link tmp; tmp = *head;

while( tmp -> next != NULL) {

tmp = tmp -> next; }

tmp -> next = (*new_node); (*new_node) -> next = NULL; }

void display_link( Link *head ) /*遍历*/ {

Link tmp;

tmp = (*head) -> next ;

if( tmp == NULL ) {

printf( \ return ; }

while( tmp != NULL ) {

printf( \ tmp = tmp -> next; } }

void create_new_node( Link *new_node , int i ) {

/*尾插*/ /*创建新的节点*/

搜索更多关于: 单链表(带头结点) 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

一.单链表 (带头结点): 1.头插 /***************************************************** copyright (C), 2014-2015, Lighting Studio. Co., Ltd. File name: Author:Jerey_Jobs Version:0.1 Date: Description:带表头节点的单链表( 头插 ) Funcion List: *****************************************************/ #include #include #include struct node

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com