编写程序。已知线性表L,采用链接存储方法,编写程序实现单链表的插入操作,在第i个位置插入新元素x。(注意:不要增加多余的符号,在英文状态下输入)
#include<iostream>
using namespace std;
template <typename T>
stuct Node
{
T data;
Node<T>*next;
};
template <typename T>
class List
{
public:
List(T a[],int n); //建立n个元素的单链表
void Insert(int i,T x); //插入操作,在第i个位置插入元素x
private:
Node<T> *first;
};
template<typename T>
void List<T>:: Insert(int i,T x)
{
Node<T>*p=first,*s=nullptr;
int count=0;
while(____)
{
____;
count____;
}
if(____)throw “插入位置错误”;
else
{
s=____;
____=x;
s->next=____;
p->next=____;
}
}
1 count < i-1 && p
2 p=p->next
3 ++
4 i<0 || count<i-1
5 new Node<T>
6 s->data
7 p->next
8 s
void LinkList<T>::Insert(int i, T x)
{
Node<T>*p=first,*s=nullptr;
int count=0;
while(p!=NULL&&count<i-1)
{
p=p->next;
count++;
}
if(p==NULL) throw "插入位置异常";
else
{
s=new Node<T>;
s->data=x;
s->next=p->next;
p->next=s;
}
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!