论坛首页· 友情链接申请·申请版主· 广告投放· 道具中心· 设为首页· 收藏本站
发新话题
打印

数据结构实例二

数据结构实例二

链表
复制内容到剪贴板
代码:
#include
#include
#include
#include "linklist.h"

void init_Linklist(Linklist *head)
{
head=NULL;
}

void cls_Linklist(Linklist *head)
{
Linklist *cp,*np;
cp=head;
while (cp!=NULL)
{
np=cp->next;
free(cp);
cp=np;
}
head=NULL;
}

int length_Linklist(Linklist *head)
{
Linklist *p=head;
int i=0;
while (p!=NULL)
{
i++;
}
return i;
}


int emp_Linklist(Linklist *head)
{
if(head=NULL)
return TRUE;
else
return FALSE;
}


Linklist *Create_Link_tail(Linklist *head)
{
Linklist *p,*q;
int x;
q=head;
printf("请依次输入数据建立单链表,以0表示结束\n");
scanf("%d",&x);
while(x!=flag)
{
p=(Linklist *)malloc(sizeof(Linklist));
p->data=x;
q->next=p;
q=p;
scanf("%d",&x);
}
q->next=NULL;
return head;
}


int insert_after(Linklist *head,int i,int x)
{
Linklist *s,*p;
int j=0;
p=head;
while (p->next!=NULL&&j<I)
{
p=p->next;;
j++;
}
if(!p||j>i)
return FALSE;
else
{
s=(Linklist *)malloc(sizeof(Linklist));
s->data=x;
s->next=p->next;
p->next=s;
return OK;
}
}


Linklist *del_Linklist(Linklist *head,int x)
{
Linklist *q,*p;
p=head;
while (p->next!=NULL&&p->data!=x)
{
q=p;
p=p->next;
}
if(p==NULL)
return NULL;
else
{
q->next=p->next;
free(p);
}
return head;
}


Linklist *locate_linklist(Linklist *head,int x)
{
Linklist *p;
p=head->next;
while (p!=NULL&&p->data!=x)
{
p=p->next;
}
return p;
}



void dis_linklist(Linklist *head)
{
Linklist *p=head;
p=p->next;
while (p!=NULL)
{
printf("%d\n",p->data);
p=p->next;

}

}


void main()
{
int i,x;
Linklist a,*b;
init_Linklist(&a);
Create_Link_tail(&a);
dis_linklist(&a);
printf("\n第i个节点后插入一个新节点,输入i:\n");
scanf("%d",&i);
printf("输入插入值:\n");
scanf("%d",&x);
insert_after(&a,i,x);
dis_linklist(&a);
printf("请输入要查找的值\n");
scanf("%d",&x);
b=locate_linklist(&a,x);
printf("节点位置是\n");
printf("%d",b);
printf("请输入要删除的值\n");
scanf("%d",&x);
del_Linklist(&a,x);
dis_linklist(&a);
}
成功在于积累,目标在于超越!

TOP

发新话题