c语言链表初始化函数 c语言链表怎么定义

C语言数据结构单链表初始化

你说的那个是逆序建立n个节点的链表,建完头结点后由于链表中没有其他节点就把头结点的next置为空,这一点如果不明白的话去看链表那一章,有介绍!!!

创新互联成立与2013年,先为宝应等服务建站,宝应等地企业,进行企业商务咨询服务。为宝应企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

之后从后往前建立链表!!刚开始是L-next =NULL

要注意p是每次新建的节点,这样从后往前以此建立链表,只要明白p是每次新建的节点,和从后往前建立,就会明白的!!给你花了张图!!

C语言初始化单链表!

在单

链表

A中删除所有和

单链表

B中元素相同的结点

#include

"stdafx.h"

#include

stdio.h

#include

malloc.h

#define

SIZE

sizeof(struct

node)

struct

node{

int

data;

struct

node

*next;

};

void

init(struct

node

*LC){

int

n;

struct

node

*Str,*p;

p=(struct

node

*)malloc(SIZE);

Str=LC;

printf("请输入链表A,以小于零的数结束输入:\n");

scanf("%d",n);

while(n=0){

p-data=n;

Str-next=p;

Str=p;

p=(struct

node

*)malloc(SIZE);

scanf("%d",n);

Str-next=NULL;

}

printf("您输入的序列的是:\n");

for

(Str=LC-next;Str!=NULL;){

printf("%d

",Str-data);

Str=Str-next;

}

printf("\n");

}

void

delet_LA(struct

node

*LA,struct

node

*pa){

struct

node

*p;

struct

node

*q;

p=LA;

q=p;

for

(p;p!=pa;){

q=p;

p=p-next;

}

q-next=pa-next;

}

void

delete_same(struct

node

*LA,struct

node

*LB){

struct

node

*pa,*pb;

pa=LA-next;

pb=LB-next;

for

(pb;pb!=NULL;){

for

(pa;pa!=NULL;){

if

(pb-data==pa-data){

delet_LA(LA,pa);

pa=LA-next;

}

else{

pa=pa-next;

}

}

pb=pb-next;

pa=LA-next;

}

printf("处理后的单链表A为:\n");

for

(pa=LA-next;pa!=NULL;){

printf("%d

",pa-data);

pa=pa-next;

}

}

void

main(){

struct

node

*LA;

struct

node

*LB;

LA=(struct

node

*)malloc(SIZE);

if(LA!=NULL)

LA-data=-1;

LB=(struct

node

*)malloc(SIZE);

if(LB!=NULL)

LB-data=-1;

init(LA);

init(LB);

delete_same(LA,LB);

}

怎么用C语言初始化一个链表啊~

所谓初始化链表就是把链表的数据置空,也就是所有的数据,指针都为null

举个单链表的例子

该算法的结果将单链表head置为空表,只需要将头节点的指针置为null即可。算法实现如下

void setnull(struct Lnode *head)

{

head-next=NULL;

}

双链表和循环链表依次类推·


网页名称:c语言链表初始化函数 c语言链表怎么定义
本文URL:http://azwzsj.com/article/ddighhh.html