这是个很简单的链表创建和输出
#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)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)