数据结构总结2:线性表的链式存储结构-创新互联
#include#includeint main()
{
return 0;
}
typedef int ElemType;
//定义一个单链表
typedef struct node
{
ElemType data;
struct node *next;
}LNode,*LinkList;
//初始化,即构造一个空表
void InitNode(LinkList &L)
{
L=(LinkList)malloc(sizeof(LNode)); //先生成新结点作为头结点,再用头指针L指向头结点
L->next=NULL; //将头结点指针域置空
}
//判断链表是否为空
int ListEmpty(LinkList L)
{
if (L->next)
return 0;
else
return 1;
}
//销毁线性表
void DestroyList(LinkList &L)
{
LinkList p;
while(L!=NULL) //L为头指针
{
p=L;
L=L->next;
free(p); //销毁结点p
}
}
//清空链表 空链表头指针和头结点仍然存在
void ClearList(LinkList &L)
{
LinkList p,q;
p=p->next;
while(p!=NULL)
{
q=p->next;
free(p);
p=q;
}
L->next=NULL;
}
//求单链表的表长
int GetLength(LinkList L)
{
int i=0;
LinkList p=L->next;
while(p!=NULL)
{
i++;
p=p->next;
}
return i;
}
//求第i个元素
int GetElem(LinkList L,int i,ElemType &e)
{
int j = 0;
LinkList p = L;
if (i<= 0)
return 0;
while (p != NULL && j< i)
{
j++;
p = p ->next;
}
if (p == NULL)
return 0;
else
{
e = p ->data;
return 1;
}
}
//查找运算
int locate(LinkList L,ElemType e)
{
LinkList p = L ->next;
int j = 1;
while (p != NULL && p ->data != e)
{
p = p ->next;
j++;
}
if (p == NULL)
return 0;
else
return j;
}
//插入元素
int InsElem(LinkList &L,ElemType x,int i)
{
int j = 0;
LinkList p = L,s;
if (i<= 0)
return 0;
while (p != NULL && j< i - 1)
{
j++;
p = p ->next;
}
if (p == NULL)
return 0;
else
{
s = (LinkList)malloc(sizeof(LNode));
s ->data = x;
s ->next = p ->next;
p ->next = s;
return 1;
}
}
//删除元素
int DelElem(LinkList &L,int i)
{
int j = 0;
LinkList p = L,q;
if (i<= 0)
return 0;
while (p != NULL && j< i-1)
{
j++;
p = p ->next;
}
if (p == NULL)
return 0;
else
{
q = p ->next;
if (q == NULL)
return 0;
else
{
free(p);
return 1;
}
}
}
//头插法建表
void CreateListF(LinkList &L,ElemType a[],int n)
{
LinkList s;
int i;
L = (LinkList)malloc(sizeof(LNode));
L->next = NULL;
for(i=0;idata=a[i];
s->next=L->next;
L->next=s;
}
}
//尾插法建表
void CreateListR(LinkList &L,ElemType a[],int n)
{
LinkList s,tc;
int i;
L = (LinkList)malloc(sizeof(LNode));
tc=L;
for (i=0;idata=a[i];
tc->next=s;
tc=s;
}
tc->next=NULL;
}
注:
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:申请域名、网页空间、营销软件、网站建设、灵川网站维护、网站推广。通过“.”引用结构体 变量名.成员名
通过“->”引用结构体(指针) 变量名->成员名
&L为引用型参数(C++中的语法,L是函数里的形参,函数调用要把值带回主函数所以用引用型参数)
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
标题名称:数据结构总结2:线性表的链式存储结构-创新互联
地址分享:http://ybzwz.com/article/ddeehp.html