注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

告别迷茫

梦想与现实的差距,就是我们生活的意义。因为我们有差距,我们才会一直积累,在努力。

 
 
 

日志

 
 

简单的链式表的基本功能的实现,只有头结点的那种哟!  

2014-09-28 23:19:43|  分类: 数据结构---严老 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

#include<stdlib.h>
#include<cstdio>
typedef struct List
{
List *next;
int data;
}*LinkList,list;
bool InitList(LinkList &l)
{
l=(List *)malloc(sizeof List); //产生头结点,并使L指向此头结点
if(!l)
{
return false;//在原来的位置有信息。
}
l->next=l;
return true;
}
bool DestroyList(LinkList &l)//连同我们的头结点一起删除啊!
{
LinkList p;
while(l)
{
p=l->next;
free(l);
l=p;
}
return true;
}
bool ClearList(LinkList &l)
{
LinkList p,q;
p=l->next;
while(p)
{
q=p->next;
free(p);
p=q;
}
return true;
}
bool IsEmpty(LinkList &l)
{
LinkList p;
p=l->next;
if(!l->next)
{
return true;
}
return false;
}
int ListLength(LinkList l)
{
LinkList p;
int i=0;
p=l->next;
while(p)
{
i++;
p=p->next;
}
return i;
}
bool GetElem(LinkList l,int i,int &e)
{
int j=1;
LinkList p;
p=l->next;
while(p&&j<i)//移动到我们的i的位置!
{
j++;
p=p->next;

}
if(i<=0||!p)//当我们的元素不纯在的时候;
{
return 0;
}
e=p->data;
}
int LocaElme(LinkList &l,int e)//找到的话返回元素所在的位置,没得返回0;
{
LinkList p;
p=l->next;
int i=0;
while(p)
{
i++;
if(p->data==e)
{
return i;
}
p=p->next;
}
return 0;
}
bool PrioElme(LinkList &l,int e,int &pri_e)
{
LinkList p,q;
p=l->next;//有他的前驱啊,所以他至少的含有两个元素;
while(p->next)
{
q=p->next;//q 为p的后继 ,所以比较的大小是我们的后继的大小与E比较哟;
if(q->data==e)
{
pri_e=p->data;
return true;
}
p=q;

}
return false;
}
bool NextElem(LinkList &l,int e,int &Next_e)
{
LinkList p,q;
p=l->next;
while(p->next)
{
if(p->data==e)
{
q=p->next;
Next_e=q->data;
return true;
}
}
return false;
}
bool ListInsert(LinkList &l,int i,int e)
{
LinkList p,q;
int j=1;
p=l;//注意这里容易错误,假如我们的插入的位子在头结点怎么办呢???
while(p&&j<i-1)//插入到第i个位置,所以找到第i-1个位置;
{
p=p->next;
j++;
}
if(!p||j>i-1)
{
return false;
}
q=(LinkList)malloc(sizeof List);
q->data=e;
q->next=p->next;
p->next=p;
return true;

}
bool ListDelete(LinkList &l,int i,int &e)//删除第i个位置的元素,并且利用我们的e返回他的值;
{
LinkList p,q;
int j=1;
p=l->next;
while(p&&j<i-1)//希望指到我们的i-1的位置;
{
p=p->next;
j++;
}
if(!p||j>i-1)
{
return false;
j++;
}
q=p->next;
p->next=q->next;
e=q->data;
free(q);
return true;

}
void ListTreaver(LinkList l)
{
LinkList p;
p=l->next;
while(p)
{
printf("%d ",p->data);
p=p->next;
}
printf("\n");
}


  评论这张
 
阅读(5)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017