线性表的链式表示与实现
单链表的定义和表示
单链表由头指针唯一确定,在C语言中可用“结构指针”来描述:
单链表的存储结构:
typedef struct LNode
{
ElemType data;
struct LNode *next;
}LNode,*LinkList;
单链表的初始化
Status InitList(LinkList &L)
{
L=new LNode;
L->next=NULL;
return Ok;
}
单链表的取值
Status GetElem(LinkList L,int i,ElemType &e)
{
p=L->next;
j=1;
while(p&&j<i)
{
p=p->next;
j++;
}
if(!p||j>i) return ERROR;
e=p->data;
return OK;
}
单链表的按值查找
LNode *LocateElem(LinkList L,ElemType e)
{
p=L->next;
while(p&&p->data!=e)
p=p->next;
return p;
}
单链表的插入
Status ListInsert(LinkList &L,int i,ElemType e)
{
p=L;
j=0;
while(p&&(j<i-1))
{
p=p->next;
j++;
}
if(!p||j>i-1)
return ERROR;
s=new LNode;
s->data=e;
s->next=p->next;
p->next=s;
return OK;
}
单链表的删除
Status ListDelete(LinkList &L,int i)
{
p=L;
j=0;
while((p->next)&&(j<i-1))
{
p=p->next;
j++;
}
if(!(p->next)||(j>i-1)) return ERROR;
q=p->next;
p->next=q->next;
delete q;
return OK;
}
前插创建单链表
void CreateList_H(LinkList &L,int n)
{
L=new LNode;
L->next=NULL;
for(i=0;i<n;i++)
{
p=new LNode;
cin>>p->data;
p->next=L->next;
L->next=p;
}
}
后插创建单链表
void CreateList_R(LinkList &L,int n)
{
L=new LNode;
L->next=NULL;
r=L;
for(i=0;i<n;i++)
{
p=new LNode;
cin>>p->data;
p->next=NULL;
r->next=p;
r=p;
}
}
版权声明:
作者:maple
链接:https://www.maplezeroz.com/?p=252
来源:我的学习笔记
文章版权归作者所有,未经允许请勿转载。
THE END
0
二维码
海报
线性表的链式表示与实现
单链表的定义和表示
单链表由头指针唯一确定,在C语言中可用“结构指针”来描述:
单链表的存储结构:
typedef struct LNode
{
ElemType data;
struct ……

共有 0 条评论