Page 56 - 高中 信息技术 选择性必修1 数据与数据结构
P. 56
第二章 数据的存储方式 2.3 数据的链式存储与组织
(续表)
功能 程序段
p=p->next;
j=++;
}
if(!p) return false; //没有找到插入位置,返回false
在链表第i(i>0)个位置 q=new LinkNode; //创建待插入结点
前插入新的结点。 q->data=e; //将数据存入结点
q->next=p->next; //修改指针域,插入结点
p->next=q;
return true;
广东教育出版社
}
//删除链表的第i(i>0)个结点
//成功删除返回true,失败返回false
bool ListDelete(LinkList &L,int i)
{
LinkNode * p, * q;
int j;
//查找第i-1个结点
p=L;j=0;
while (p&&j<i-1)
从链表中删除第i(i>0) {
个结点。 p=p->next;
j=++;
}
if(!p) return false; //没有找到删除位置,返回false
q=p->next;
if(!q) return false; //第i个结点不存在,返回false
p->next=q->next; //修改指针域,使待删除结点脱离链表
delete q; //释放结点内存空间
return true;
}
//从链表中取第i(i>0)个元素
string GetElement(LinkList &L,int i)
{
LinkNode * p;
int j;
//查找第i个结点
p=L;j=0;
从链表中取得第i(i>0)
while(p&&j<i)
个元素。
{
p=p->next;
j++;
}
if(p) return p->data; //结点存在,返回结点数据
else return NULL; //不存在,返回NULL
}
48 48
21X2204.indd 48 2019/9/26 13:53:09