这个单循环链表建立的问题在哪呀?

qingqing_9020 qingqing_9020 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
#include<iostream>
using namespace std;
class Node
{
public:
int mydata;
Node *next;
Node()
{
next=NULL;
}
Node(int data,Node *next1)
{
mydata=data;
next=next1;
}
};

class SingleLinkedList
{
public:
Node *head,*s,*p;
SingleLinkedList(int a[],int n);
~SingleLinkedList();
int Length();
int Get(int i);
int Locate(int x);
void Insert(int i,int x);
int Delete(int i);
void PrintList();
};



SingleLinkedList::SingleLinkedList(int a[],int n)
{
head=new Node;
p=head;
for(int i=0;i<n;i++)
{
s=new Node;
s->mydata=a[i];
p->next=s;p=s;

}
s->next=head;

}

int SingleLinkedList::Length()
{

int count;
s=head->next;count=0;
while(s->next!=head)
{
s=s->next;
count++;
}
return count;
}

int SingleLinkedList::Get(int i)
{
int count;
s=head->next;count=1;
while(s->next!=head&&count<i)
{
s=s->next;
count++;
}

return s->mydata;
}

int SingleLinkedList::Locate(int x)
{
int count;
s=head->next;count=1;
while(s->next!=head)
{
if(s->mydata==x) return count;
s=s->next;
count++;
}
return 0;
}

void SingleLinkedList::Insert(int i,int x)
{
s=head;int count=0;
while(s->next!=head&&count<i-1)
{
s=s->next;
count++;
}

p=new Node;p->mydata=x;
p->next=s->next;s->next=p;

}

int SingleLinkedList::Delete(int i)
{
int x;
s=head;int count=0;
while(s->next!=head&&count<i-1)
{
s=s->next;
count++;
}

p=s->next;x=p->mydata;
s->next=p->next;
delete p;
return x;
}



void SingleLinkedList::PrintList()
{
s=head->next;
while(s->next!=head)
{
cout<<s->mydata<<endl;
s=s->next;
}
}

SingleLinkedList::~SingleLinkedList()
{
while(head!=NULL)
{
s=head;
head=head->next;
delete s;
}
}

void main()
{

int a[4]={1,2,2,4};
SingleLinkedList list(a,4);
list.Length();

}
...全文

相关推荐

评论 7
收藏 已收藏
分享
返回顶部
qingqing_9020
C++ 语言 65,214 成员 250,514 内容