链表c语言头插法,c语言链表尾插

本文目录一览:

c语言数据结构,单链表中的头插法求解释

L这个头结点是不存储数据的,L-next L的下个结点才存储数据,为实际的第一个结点

s-next=L-next 新插入的结点s放在第一个结点前面,变为新的第一个结点,L-next=s 这句让L-next指向新的第一个结点

L-next改为L s-next=L ,L=s可以,这样头指针就是实际存储数据的第一个结点

C语言 头插法建立链表

#include

stdio.h

#include

stdlib.h

typedef

struct

_list

{

int

val;

struct

_list*

next;

}

*node,

list;

//

在pos位置之后插一个节点,pos为空则在头部插入

node

insert(

node*

head,

node

pos,

int

val

)

{

node

tmp;

tmp

=

(

node

)malloc(

sizeof(

list

)

);

tmp-val

=

val;

tmp-next

=

pos

?

pos-next

:

*head;

return

(

pos

?

pos-next

:

*head

)

=

tmp;

}

//

从数组简单构造一个链表

node

create(

int*

beg,

int*

end

)

{

node

head

=

null;

while

(

beg

!=

end

)

{

insert(

head,

null,

*beg++

);

//

在头部插入

}

return

head;

}

//

遍历输出各个节点的值

void

print(

node

head

)

{

while

(

head

)

{

printf(

“%d

“,

head-val

);

head

=

head-next;

}

putchar(

‘\n’

);

}

int

main()

{

int

a[]

=

{

0,1,2,3,4,5,6,7,8,9

};

node

head;

head

=

create(

a,

a

+

10

);

print(

head

);

return

0;

}

单链表(C语言)头插法的建立和输出问题

//程序有多处改动,烦请将该程序另存,对比修改前后的差别

/*

1、头部无数据,则在链表中,浪费头结点;

2、头部有数据,则在链表中,浪费最后一个结点;

3、头部无数据结点思想:将新结点挂在头结点后面,将新数据存放在新结点中;

4、头部有数据结点思想:将新结点挂在头结点后面,将新数据存放在头结点中;

*/

#include stdio.h

#include stdlib.h

#define N 5

struct Node {

    int Data; /* 存储结点数据 */

    struct Node * Next; /* 指向下一个结点的指针 */

};

typedef struct Node List; /* 定义单链表类型 */

void headinsert(List * L);

void display( List * L );

void headinsert2(List * L);

void display2( List * L );

int main()

{

    List *L1,*L2;

    L1=(List *)malloc(sizeof(struct Node));

L2=(List *)malloc(sizeof(struct Node));

printf(“头部含数据:”);

headinsert(L1);

    display(L1);

printf(“\n”);

printf(“头部含数据:”);

    headinsert2(L2);

    display2(L2);

printf(“\n”);

return 0;

}

void headinsert(List *L)//头部无数据

{

int  i;

     List  * p;

   // scanf(“%d”, N);

    L-Next=NULL;

    for ( i=0; iN; i++ ) 

{

        p = (List *)malloc(sizeof(struct Node));

        p-Data=i+1; 

p-Next = NULL;

        L-Next = p;  //此处有改动,否则,后面一个结点插入到前一个结点的前面了

L = L-Next ;

    }

}

void display( List *L )

{

   List *p;

   p=L-Next; 

  while(p!=NULL)

  { 

    printf(“%d “,p-Data);

p=p-Next;

  }

}

void headinsert2(List *L)//头部有数据

{

int  i;

     List  * p;

    //scanf(“%d”, N);

    L-Next = NULL;

    for ( i=0; iN; i++ ) 

{

        p = (List *)malloc(sizeof(struct Node));

        L-Next = p;

L-Data=i+2; //+2以示区别  

        L = L-Next; 

p -Next = NULL;

    }

}

void display2( List *L )

{

   List *p;

   p=L; 

  while(p-Next!=NULL)//此处改为p-Next!=NULL,否则会有一个垃圾数

  { 

    printf(“%d “,p-Data);

p=p-Next;

  }

}

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/154901.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-11-16 14:15
下一篇 2024-11-16 14:15

相关推荐

  • 利用Python实现两个链表合并为一个有序链表

    对于开发工程师来说,实现两个链表合并为一个有序链表是必须掌握的技能之一。Python语言在链表处理上非常便利,本文将从多个方面详细阐述如何利用Python实现两个链表合并为一个有序…

    编程 2025-04-29
  • AES加密解密算法的C语言实现

    AES(Advanced Encryption Standard)是一种对称加密算法,可用于对数据进行加密和解密。在本篇文章中,我们将介绍C语言中如何实现AES算法,并对实现过程进…

    编程 2025-04-29
  • 学习Python对学习C语言有帮助吗?

    Python和C语言是两种非常受欢迎的编程语言,在程序开发中都扮演着非常重要的角色。那么,学习Python对学习C语言有帮助吗?答案是肯定的。在本文中,我们将从多个角度探讨Pyth…

    编程 2025-04-29
  • Python被称为胶水语言

    Python作为一种跨平台的解释性高级语言,最大的特点是被称为”胶水语言”。 一、简单易学 Python的语法简单易学,更加人性化,这使得它成为了初学者的入…

    编程 2025-04-29
  • OpenJudge答案1.6的C语言实现

    本文将从多个方面详细阐述OpenJudge答案1.6在C语言中的实现方法,帮助初学者更好地学习和理解。 一、需求概述 OpenJudge答案1.6的要求是,输入两个整数a和b,输出…

    编程 2025-04-29
  • Python按位运算符和C语言

    本文将从多个方面详细阐述Python按位运算符和C语言的相关内容,并给出相应的代码示例。 一、概述 Python是一种动态的、面向对象的编程语言,其按位运算符是用于按位操作的运算符…

    编程 2025-04-29
  • Python语言由荷兰人为中心的全能编程开发工程师

    Python语言是一种高级语言,很多编程开发工程师都喜欢使用Python语言进行开发。Python语言的创始人是荷兰人Guido van Rossum,他在1989年圣诞节期间开始…

    编程 2025-04-28
  • Python语言设计基础第2版PDF

    Python语言设计基础第2版PDF是一本介绍Python编程语言的经典教材。本篇文章将从多个方面对该教材进行详细的阐述和介绍。 一、基础知识 本教材中介绍了Python编程语言的…

    编程 2025-04-28
  • Python语言实现人名最多数统计

    本文将从几个方面详细介绍Python语言实现人名最多数统计的方法和应用。 一、Python实现人名最多数统计的基础 1、首先,我们需要了解Python语言的一些基础知识,如列表、字…

    编程 2025-04-28
  • Python作为中心语言,在编程中取代C语言的优势和挑战

    Python一直以其简单易懂的语法和高效的编码环境而著名。然而,它最近的发展趋势表明Python的使用范围已经从脚本语言扩展到了从Web应用到机器学习等广泛的开发领域。与此同时,C…

    编程 2025-04-28

发表回复

登录后才能评论