{
//
在带头结点的单链表
L
中查找值为
e
的元素
LNode* p;
p=L->next;
while(p&&p->data!=e)//
寻找满足条件的结点
p=p->next;
return p;//
返回
L
中值为
e
的元素的位置;查找失败的话返回
NULL
}
break;
case7:
//------------
插入
-------------------------------------------
Status ListInsert_L(LinkList &L,int i,ElemType &e)
{
LinkList p=L;
int j=0;
while(p&&j<i-1)
{
p=p->next;
++j;
}
if(!p||j>i-1)
return ERROR;
LinkList s;
s=new LNode;//
生成新结点
s
s->data=e;//

将结点
s
的数据域置为
e
s->next=p->next;//
将结点
s
插入
L
中
p->next=s;
cout<<"
插入完成
"<<endl;
return OK;
}
break;
case8:
//--------------
单链表删除
------------
Status ListDelete_L(LinkList &L,int i,ElemType e)
{
LinkList p=L;
LinkList q;
int j=0;
while(p&&j<i-1)//
寻找第
i-1
个结点
{
p=p->next;
++j;
}
if(!(p->next)||j>i-1)
return ERROR;//i
大于表长
+1
或小于
1
q=p->next;//
临时保存被删结点的地址以备释放
p->next=q->next;//
改变删除结点前驱结点的指针域
e=q->data;
delete q;//
释放删除结点的数据域
cout<<e<<"
被删除
"<<endl;
return OK;
}
//---------------
前插法创建链表
--
逆序输入
--------
void CreateList_F(LinkList &L,int n)
{
L=new LNode;
LinkList p;
L->next=NULL;//
先建立一个带头结点的空链表
for(int i=n;i>0;--i)
{
p=new LNode;//
生成新结点
cin>>p->data;//
输入元素值
p->next=L->next;
L->next=p;//
插入到表头
}
}
//--------------
后插法创建链表
--
正序输入
-----------
void CreateList_L(LinkList &L,int n)
{
L=new LNode;
LinkList p;
L->next=NULL;
LinkList r=L;//
尾指针
r
指向头结点
for(int i=0;i<n;++i)
{
p=new LNode;//
生成新结点
cin>>p->data;
p->next=NULL;
r->next=p;
r=p;//r
指向新的结点
}
}
int main()
{
int choice;
int n;
int i;
}
}
}
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-44450-3.html
站坑里宋
芝麻糊里面都是密封包装
千千爱你
醉了永远半张脸