m0_74203003 2023-02-20 17:07 采纳率: 85.7%
浏览 31
已结题

C++我创建了一个类描述链表,但是比知道为什么总是内存报错,能帮我看看怎么回事吗?

我创建了一个类描述链表,但是比知道为什么总是内存报错,有人可以帮我看看吗?

#ifndef LIST1_H_
#define LIST1_H_


#include<iostream>


using namespace std;


struct linked
{
  int a;
  linked * next;
};


class list
{
  private:
  linked * head;
  linked * tail;
  int len;
  public:
  list(int i);
  void ins(int  in,int i);
  void del(int i);
  void show(int i);
  void showall();
  int le();
  ~list();
};


#endif



#include"list1.h"


list::list(int i)    //初始化链表
{
  linked * head = new linked;
  tail = head;
  head->a = i;
  head->next = NULL;
  len = 1;

}

void list::ins(int in, int i)   //在第i个链表后追加
{
  if(i > len)
    cout<<"error input"<<endl;
  else
{
  len++;
  linked * sp = new linked;
  if(i == 0) 
{
    sp->next = head;
    head = sp;
    sp->a = in;
}
  else
{
    linked * st = head;
    while(i - 1)
{
    st = st->next;
    i--;
}
    sp->a = in;
    if(st->next)
{
      sp->next = NULL;
      tail = sp;
}
    else sp->next = st->next;
    st->next = sp;
}
}
}


void list::del(int i)    //删除第i个链表
{
  if((i > len) || (i < 1) || (head == tail))
     cout<<"error del"<< endl;
  else
{
  len--;
  linked * sp = head;
  if(i = 1)   
{
   head = head->next;
   delete sp;
}
  else
{
  linked * st;
  while(i - 1)
{
  i--;
  sp = sp->next;
} 
  st = sp->next;
  sp->next = (sp->next)->next;
  delete st;
}
}
}

void list::show(int i)
{
  if((i < 1) || (i >len))
     cout<<"error show"<<endl;
  else
{
  linked * sp =head;
  while(i - 1)
{
  i--;
  sp = sp->next;
}
  cout<<sp->a;
}}

void list::showall()
{
  int  t = 1;
  while(t <=len)
{
  show(t);
  cout<<" , ";
  t++;
}
  cout<< endl;
}

int list::le()
{
  return len;
 }

 
list::~list()
{
  linked * sp = head;
  
  while(sp->next)
{
  linked * st;
  st = sp;
  sp = sp->next;
  delete st;
}
  delete sp;
 
} 














  • 写回答

2条回答 默认 最新

  • 快乐鹦鹉 2023-02-20 17:15
    关注

    21行、56行
    if(i = 0)
    改为
    if(i == 0)
    ==
    50行
    head = tail
    改为
    head == tail

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月7日
  • 已采纳回答 2月27日
  • 修改了问题 2月20日
  • 修改了问题 2月20日
  • 展开全部

悬赏问题

  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改