单链表-----数据结构
来源:互联网 发布:霹雳知乎 编辑:程序博客网 时间:2024/06/11 17:08
//测出链表表长
int ListLength_L(LinkList L)
{
p=L; k=0;
while(p)
{
k++;
p=p->next;
}
return k;
}
//查找元素
LNode * LocateELem_L(LinkList L,ElemType e)
{
p=L;
while(p&&p->date!=e) p=p->next;
return p;
}
//查找p将其插入
void ListInsert_L(LinkList &L,Lnode *p,Lnode *s)
{
//指针p指向L为头指针的链表中某个结点,将s结点插入到p结点之前
if(p==L) //将s结点插入在链表的第一个结点之前
s->next=L;
L=s;
else
{
q=L;
while(q->next!=p) q=q->next;
q->next=s; s->next=p;
}
}
//查找p将其删除
void ListDelete_L(LinkList &L,Lnode *p,ElemType *e)
{
//p指向L为头指针的链表中某个结点,从链表中删除该结点并由e返回其元素
if(p==L) //删除链表中第一个结点,修改链表头指针
L=p->next;
else
{
q=L;
while(q->next!=p) q=q->next; //查找p的前驱结点q
q->next=p->next; //修改q结点的指针域
}
e=p->data; delete p; //返回别删除结点的数据元素,并释放结点空间
}
int ListLength_L(LinkList L)
{
p=L; k=0;
while(p)
{
k++;
p=p->next;
}
return k;
}
//查找元素
LNode * LocateELem_L(LinkList L,ElemType e)
{
p=L;
while(p&&p->date!=e) p=p->next;
return p;
}
//查找p将其插入
void ListInsert_L(LinkList &L,Lnode *p,Lnode *s)
{
//指针p指向L为头指针的链表中某个结点,将s结点插入到p结点之前
if(p==L) //将s结点插入在链表的第一个结点之前
s->next=L;
L=s;
else
{
q=L;
while(q->next!=p) q=q->next;
q->next=s; s->next=p;
}
}
//查找p将其删除
void ListDelete_L(LinkList &L,Lnode *p,ElemType *e)
{
//p指向L为头指针的链表中某个结点,从链表中删除该结点并由e返回其元素
if(p==L) //删除链表中第一个结点,修改链表头指针
L=p->next;
else
{
q=L;
while(q->next!=p) q=q->next; //查找p的前驱结点q
q->next=p->next; //修改q结点的指针域
}
e=p->data; delete p; //返回别删除结点的数据元素,并释放结点空间
}
0 0
- 数据结构---单链表
- 数据结构--单链表
- 数据结构单链表
- 数据结构单链表
- 【数据结构】单链表
- 数据结构单链表
- [数据结构]单链表
- 数据结构--单链表
- 数据结构--单链表
- 数据结构-单链表
- 数据结构 -- 单链表
- 数据结构-单链表
- 数据结构 --- 单链表
- 数据结构---单链表
- 数据结构--单链表
- 数据结构 单链表
- 数据结构-单链表
- 数据结构---单链表
- J2EE轻量级框架--3.28学习心得
- 光电传感器笔记
- AndroidStudio R.java文件丢失的问题
- 屏幕参数
- kmp算法字符串匹配C语言实现
- 单链表-----数据结构
- 求两个数的最大公约数
- Remove Node in Binary Search Tree
- 黑马程序员——JAVA学习日志之异常
- Leetcode 110. Balanced Binary Tree
- mysql创建用户和授权的三种方式
- tomcat、servlet学习
- 【spark source】Spark LinearRegression源码解读
- android view 动画学习