用C语言实现建立一个单链表的过程,并实现打印链表中每一个元素,写出完整程序

用C语言实现建立一个单链表的过程,并实现打印链表中每一个元素,写出完整程序,第1张

这是个很简单的链表创建和输出

#include<stdio.h>

#include<stdlib.h>

typedef struct linkednode

{

char data

struct linkednode *next

}node,*link_list//链表节点的结构及重命名

link_list creat()//创建一个链表返回类型是链表的首地芦段址

{

link_list L

node *p1,*p2

char data

L=(node*)malloc(sizeof(node))//开辟存储空间

p2=L

while((data=getchar())!='\n')//输入回车键时结束输老哗大入

{

p1=(node*)malloc(sizeof(node))

p1->data=data

p2->侍竖next=p1

p2=p1

}

p2->next=NULL

return L

}

void print(link_list L)//把链表输出

{

node *p

p=L->next

while(p!=NULL)

{

printf("%c",p->data)

p=p->next

}

printf("\n")

}

void main()

{

link_list L=NULL

char x

printf("请输入链表节点:\n")

L=creat()

print(L)

}

#include<stdio.h>

#include<stdlib.h>

typedef struct LNode

{

int data

struct LNode *next

}LNode,*Llist

LNode *creat_head()//创建一个空表

void creat_list(LNode *,int)//创建一个长度为n的线性链表

void insert_list(LNode *,int,int )//插入一个元竖模素

int delete_list(LNode *,int)//删除一个元素

main()

{

LNode *head,*p

int n

int x,i

int b

clrscr()

head=creat_head()

printf("n=")scanf("%d",&n)

creat_list(head,n)

for(p=head->nextp!=NULL)

{

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

p=p->next

}

printf("\n*****************************************************\n")

printf("x=")scanf("%d",&x)

printf("\ninsert i="衡散)scanf("%d",&i)

insert_list(head,x,i)

for(p=head->nextp!=NULL)

{

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

p=p->next

}

printf("\n*********************************************************\n")

printf("delete i=")scanf("%d",&i)

b=delete_list(head,i)

for(p=head->nextp!=NULL)

{

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

p=p->next

}

printf("\ndelete b=%d",b)

getch()

}

//创建一个空链表

LNode *creat_head()

{

LNode *p

p=(Llist)malloc(sizeof(LNode))

p->next=NULL

return(p)

}

//创建一个长度为n的线性链表

void creat_list(LNode *head,int n)

{

LNode *p,*q

int i

p=head

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

{

q=(Llist)malloc(sizeof(LNode))

printf("data:")scanf("%d",&q->data)

q->next=NULL

p->next=q

p =q

}

}

//插咐纤氏入一个元素

void insert_list(LNode *head,int x,int i )

{

int j=0

LNode *p,*s

p=head

while((p!=NULL)&&(j<i-1))

{

p=p->next

j++

}

if(p==NULL) exit(0)

s=(Llist)malloc(sizeof(LNode))

s->data=x

s->next=p->next

p->next=s

}

//删除一个元素

int delete_list(LNode *head,int i)

{

LNode *p,*q

int j=0

int x

p=head

while((p!=NULL)&&(j<i-1))

{

p=p->next

j++

}

if(p==NULL) exit(0)

q=p->next

p->next=q->next

x=q->data

free(q)

return(x)

}


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存