C语言 编程实现静态链表的建立和输出
3个回答
2013-07-20
展开全部
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 100
typedef int datatype;
typedef struct link_node{
datatype info;
struct link_node *next;
}node; //定义链表的结构体
node *init() //建立一个空链表
{
return NULL;
}
void display(node *head) //输出单链表
{
node *p;
p=head;
if(!p)printf("\n单链表是空的!");
else
{
printf("\n单链表各个结点的值为:\n");
while(p){printf("%5d",p->info );p=p->next ;}
}
}
node *find(node *head,int i)//查找第i个结点存放地址
{
int j=1;
node *p=head;
if(i<1)return NULL;
while(p&&i!=j)
{
p=p->next ;j++;
}
return p;
}
node *insert(node *head,datatype x,int i)//在第i个结点后插入值为X的新结点
{
node *p,*q;
q=find(head,i);
if(!q&&i!=0)
printf("\n找不到第%d个结点,不能插入%d!",i,x);
else
p=(node *)malloc(sizeof(node));
p->info =x;
if(i==0)
{
p->next =head;
head=p;
}
else
{
p->next =q->next ;
q->next =p;
}
return head;
}
node *dele(node *head,datatype x)//单链表的删除
{
node *pre=NULL,*p;
if(!head){printf("单链表是空的!");return head;}
p=head;
while(p&&p->info !=x)
{pre=p;p=p->next ;}
if(p)
{
if(!pre)head=head->next ;
else pre->next =p->next;
free(p);
}
return head;
}
void main()
{
//略
}
#include<stdlib.h>
#define MAXSIZE 100
typedef int datatype;
typedef struct link_node{
datatype info;
struct link_node *next;
}node; //定义链表的结构体
node *init() //建立一个空链表
{
return NULL;
}
void display(node *head) //输出单链表
{
node *p;
p=head;
if(!p)printf("\n单链表是空的!");
else
{
printf("\n单链表各个结点的值为:\n");
while(p){printf("%5d",p->info );p=p->next ;}
}
}
node *find(node *head,int i)//查找第i个结点存放地址
{
int j=1;
node *p=head;
if(i<1)return NULL;
while(p&&i!=j)
{
p=p->next ;j++;
}
return p;
}
node *insert(node *head,datatype x,int i)//在第i个结点后插入值为X的新结点
{
node *p,*q;
q=find(head,i);
if(!q&&i!=0)
printf("\n找不到第%d个结点,不能插入%d!",i,x);
else
p=(node *)malloc(sizeof(node));
p->info =x;
if(i==0)
{
p->next =head;
head=p;
}
else
{
p->next =q->next ;
q->next =p;
}
return head;
}
node *dele(node *head,datatype x)//单链表的删除
{
node *pre=NULL,*p;
if(!head){printf("单链表是空的!");return head;}
p=head;
while(p&&p->info !=x)
{pre=p;p=p->next ;}
if(p)
{
if(!pre)head=head->next ;
else pre->next =p->next;
free(p);
}
return head;
}
void main()
{
//略
}
2013-07-20
展开全部
……路过,我是学Java语言的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-07-20
展开全部
C语言俺不会 连UBB俺都搞不懂 你会不呀?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询