用C语言编程(创建一个单向链表)

用C语言编程(创建一个单向链表),第1张

*creat a list*/

#include "stdlib.h"

#include "stdio.h"

struct list

{ int data

struct list *next

}

typedef struct list node

typedef node *link

void main()

{ link ptr,head

int num,i

ptr=(link)malloc(sizeof(node))

ptr=head

printf("please input 5 numbers==>\n")

for(i=0i<=4i++)

{

scanf("%d",&num)

ptr->data=num

ptr->next=(link)malloc(sizeof(node))

if(i==4) ptr->next=NULL

else ptr=ptr->next

}

ptr=head

while(ptr!=NULL)

{ printf("The value is ==>%d\n",ptr->data)

ptr=ptr->next

}

}

上面是一个简单的创建链表的C程序。所谓链表形象的讲就是一个数据块里面存有数据,并且存有下一个数据的指针,这样一个指一个形成一个数据链。这个数据链可以被 *** 作,例如插入数据,删除数据,等。至于指令,首先定义一个结构体,它存有数据和指向下一个数据块的指针。然后分配空间。注意最后一个为NULL,当然你也可以指向开头一个数据块形成一个循环链表

#include<stdio.h>

#include<stdlib.h>

typedef

int

datatype

typedef

struct

node

{

datatype

data

struct

node

*next

}linklist

linklist

*head

linklist

*hrear_creat()//建立链表

{

int

x

linklist

*head,*p,*rear

head=(struct

node*)malloc(20)

head->data=-999

rear=head

//clear()

printf("请输入互不相同的正整数以0结束:\n\t")

scanf("%d",&x)

while(x!=0)

{

p=(struct

node*)malloc(20)

p->data=x

rear->next=p

rear=p

scanf("%d",&x)

}

rear->next=NULL

return(head)

}

linklist

*key_delete(linklist

*head)

{

void

print(linklist

*rb)

linklist

*p,*q

int

x,y,i

printf("请输入要删除的起始结点:\n\t")

scanf("%d",&x)

printf("请输入要删除结点的个数:\n\t")

scanf("%d",&y)

p=head

while(

p

&&

(p->data!=x)

)

{

q

=

p

p=p->next

}

if(p!=NULL)

{

for(i=1i<=yi++)

{

p

=

q->next

if

(

p

==

NULL

)

break

q->next

=p->next

free(p)

}

return(head)

}

else

{

printf("\n\t要删除的结点不存在,请重新输入数据!\n",x)

return(NULL)

}

}

void

print(linklist

*rb)

{

linklist

*p,*head

int

n=0

head=rb->next

printf("链表中的数据为:\n\t%5d",head->data)

p=head->next

while(

p

)

{

printf("%5d",p->data)

p=p->next

n=n+1

if((n+1)%10==0)

printf("\n\t")

}

printf("\n\t")

}

int

main()

{

linklist

*p

p=hrear_creat()

print(p)

key_delete(p)

print(p)

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11917337.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存