永发信息网

链表基本操作

答案:1  悬赏:70  手机版
解决时间 2021-03-22 13:58
链表基本操作
最佳答案
struct Link
  {
  int data;
  Link *Next;
  }
  ///////////////////////////////////////////////////////////////////////////////
  class LinkList//带头结点的链表
  {
  public:
  void SetNull();
  void CreateLink();
  void Insert(int x,int n);//在第x个元素后面插入n
  int FindByNum(int x);//找到第x位置的元素,并返回该元素
  int FindByValues(int n);//找到值等于n的元素,并返回该元素的位置
  int GetLength();
  void print();
  Link *List;
  };
  //////////////////////////////////////////////////////////////////////////////////
  void LinkList::SetNull()
  {
  List=NULL;
  }


  void LinkList::CreateLink()//输入整数建立链表,-1结束
  {
  Link *tail,*p;
  List=tail=new Link;
  List->Next=NULL;
  int x;
  cin>>x;
  while(x>0)
  {
  p=new Link;
  p->data=x;
  if(List->Next==NULL)
  List->Next=p;
  else
  tail->Next=p;
  tail=p;
  cin>>x;
  }


  tail->Next=NULL;//链表结束标志
  }
  void LinkList::Insert(int x,int n)//在第x个元素后面插入n
  {
  if(List->Next==NULL)
  {
  cout<<"链表为空!"<  }
  else
  {
  Link *p,*q;
  p=q=new Link;
  q=List->Next;
  int i=0;
  while(i!=x-1)
  {
  if(q->Next==NULL)
  {
  cout<<"参数有误!"<  break;
  }
  else
  {
  q=q->Next;
  }
  i++;
  }
  p->data=n;
  p->Next=q->Next;
  q->Next=p;
  }
  }
  void LinkList::print()
  {
  if(List==NULL)
  cout<<"链表为空,print"<  else
  {
  Link *p=new Link;
  p=List->Next;
  cout<<"打印链表:";
  while(p)
  {
  cout<<""<data<<",";
  p=p->Next;
  }
  delete p;
  cout<  }
  }
  int LinkList::FindByNum(int x)//找到第x位置的元素,并返回该元素
  {
  int n=0;
  if(List==NULL)
  cout<<"链表为空,print"<  else
  {
  Link *p=new Link;
  int i=0;
  p=List->Next;
  while(i!=x-1)
  {
  if(p==NULL)
  {
  cout<<"参数有误!"<  break;
  }
  p=p->Next;
  i++;
  }
  n=p->data;
  }
  return n;
  }
  int LinkList::FindByValues(int n)
  {
  int i=1;
  if(List==NULL)
  cout<<"链表为空,print"<  else
  {
  Link *p=new Link;
  p=List->Next;
  while(p->data!=n)
  {
  if(p==NULL)
  {
  cout<<"未找到!"<  break;
  }
  p=p->Next;
  i++;
  }
  }
  return i;
  }
  int  LinkList::GetLength()//获得链表长度 存入链首
  {
  int i=0;
  if(List==NULL)
  cout<<"链表为空"<  else
  {
  Link *p=new Link;
  p=List->Next;
  while(p)
  {
  p=p->Next;
  ++i;
  }
  List->data=i;
  }
  return i;
  }
  int _tmain(int argc, _TCHAR* argv[])
  {
  LinkList L;
  L.SetNull();
  cout<<"创建链表:";
  L.CreateLink();
  L.print();
  cout<<"在第二个元素后面插入 111";
  L.Insert(2,111);
  L.print();
  cout<<"输出第二个位置的元素:"<  cout<<"等于3的元素的位置是:"<  L.GetLength();
  cout<<"链表长:"<data;
  return 0;
  }

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
怎样把视频转成音频?
老徐米粉店地址在哪,我要去那里办事
Would you please keep silent? The weather
就同音字有哪些,一年级小孩分不清同音字怎么
日产新阳光好不好
与秋天相关的诗句,与秋有关的古诗
单选题下列各选项中所述的两个量,前者一定大
平安镇公共服务中心地址在什么地方,想过去办
联想z5070高分屏的分辨率是多少
关于友情的文艺短句子,描述友谊的文艺句子
含健和丽的成语、对联。
2012年是中英《南京条约》签订170周年,此条
三亚蔓莎婚纱摄影地址有知道的么?有点事想过
从梅李坐几路车能到长途汽车站
本命年应该穿点什么或者带点什么比较好?
推荐资讯
windows10 系统下的 笔记本电脑怎么设置无线
读古代诗词随想怎么写,寻找红色足迹的诗词
X+4分之1x=75这个方程怎么解
dnf如何提高增幅装备的成功率。 是增幅,不是
单选题对孢子的叙述,正确的是A.孢子即生殖细
贵阳适合北方人去定居吗?
益阳市城市建设投资开发公司地址在什么地方,
2012年的小玛哥葡萄酒多少钱
已知A(x+5,2x+2)在x轴上,那么点A的坐标是
怡朦酒店商城店我想知道这个在什么地方
形容迟到的幽默句子,描写迟到的句子
000 852 5305 6051是香港什么地方的电话
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?