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

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

单链表(不带头结点)

  • 62 次阅读
  • 3 次下载
  • 2025/12/10 20:34:23

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 create_link( Link *head ) /*创建新的,空的链表*/ {

*head = NULL ; }

void is_malloc_ok( Link *new_node ) /*判断节点是否创建成功*/ {

if( ( *new_node == NULL ) ) {

printf( \ exit( -1 ); } }

void create_new_node( Link *new_node, int i ) /*创建节点*/ {

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

void insert_node_tail( Link *head, Link *new_node ) /*尾插插入节点*/ {

Link tmp; tmp = *head;

if( tmp == NULL ) /*判断链表为空,则头插*/

{

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

else /*链表不为空,则尾插*/ {

while( tmp -> next != NULL ) {

tmp = tmp -> next; }

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

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

Link tmp ; tmp = *head;

while( tmp != NULL ) {

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

void convert_link( Link *head ) /*逆序*/ {

Link p1 = NULL ; Link p2 = NULL ; Link p3 = NULL ;

p1 = p2 = p3 = *head;

if( *head == NULL ) {

printf( \ return ; }

if( (*head) -> next == NULL ) {

return ; }

p2 = p1 -> next ;

if( p2 -> next == NULL ) {

p2 -> next = p1; p1 -> next = NULL; *head = p2; return ; }

p3 = p2 -> next ;

while( p3 -> next != NULL ) {

p2 -> next = p1; p1 = p2; p2 = p3;

p3 = p3 -> next; }

p3 -> next = p2; p2 -> next = p1;

( *head ) -> next = NULL ; *head = p3; }

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 ;

create_link( &head );

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

{

create_new_node( &new_node , i ); insert_node_tail( &head, &new_node ); }

display_link( &head ); printf( \

convert_link( &head ); display_link( &head );

release_link( &head );

return 0; }

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

共分享92篇相关文档

文档简介:

Author:Jerey_Jobs Version:0.1 Date: Description:创建链表用尾插法( 再逆序输出 ) Funcion List: *****************************************************/ #include #include #include struct node /*定义链表节点*/ { int num; struct node *next; }; typedef struct node 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