有没有人帮我看看哪里写错了,要哭了

万万啊 2018-12-10 09:08:01
/*实现如下操作:根据键盘输入的n个整型元素建立单链表(要求单链表的元素顺序和输入的元素顺序一致),并且在第pos(1<=pos<=n)个位置插入一个新的整型元素x。输出插入成功后的元素序列,要求输出元素之间用空格隔开。*/#include <stdlib.h> #include <iostream> #define MaxSize 100 #include <iostream> using namespace std; struct Node{ int data; Node *next;}; class Linklist{ public: void insret(int pos,int x); Linklist(int a[],int n); void PrintList( ); private: Node *first; }; Linklist::Linklist(int a[], int n){ Node *r; first=new Node; r=first; for(int i=0;i<n;i++) { Node *s; s=new Node; s->data=a[i]; r->next=s; r=s; } r->next=NULL; } void Linklist::insret(int pos,int x){ Node *p; Node *s; p=first; int count=0; while(p!=NULL&&count<pos-1) { p=p->next; count++;} if(p==NULL) throw"位置"; else { s=new Node; s->data=x; s->next=p->next; p->next=s; } } int main(){ int n,pos,x; cin>>n; int a[n]; int i; for(i=0;i<n;i++) cin>>a[i]; Linklist L(a,n); cin>>pos; cin>>x; L.insret(pos,x); for(i=0;i<n;i++) { cout<<a[i]<<" "; } return 0;}
...全文
68 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
好了

#include <stdlib.h>
#include <iostream>
#include <iostream>

using namespace std;

#define MaxSize 100

struct Node
{
	int data;
	Node *next;
};
class Linklist
{
public:	
	void insret(int pos,int x);	
	Linklist(int a[],int n);	
	void PrintList();	
private:
	Node *first;	
};
Linklist::Linklist(int a[], int n)
{	
	Node *r = NULL;
	for(int i=0;i<n;i++)
	{
		Node *s = new Node;  
		if (r == NULL)
		{
			r = s;
		}
		else
		{
			r->next = s;
			r = r->next;
		}

		r->data=a[i];
		r->next=NULL;  	

		if (i == 0)
		{
			first = r;
		}
	} 
}

void Linklist::insret(int pos,int x)
{	
	Node *p;  
	Node *s;
	p=first;	
	int count=0;	
	while(p != NULL && count < pos-1)
	{
		p=p->next;	
		count++;
	}	

	if(p==NULL)	
	{
		throw"位置";	
	}
	else
	{	
		s=new Node;	
		s->data=x;	
		s->next=p->next;	
		p->next=s;	
	}	
}	

void Linklist::PrintList()
{
	Node *cur = first;
	while(cur)
	{
		cout << cur->data << " ";
		cur = cur->next;
	}

	cout << endl;
}

int main()
{
	int n,pos,x;	
	cin>>n;	
	int *a = new int[n];
	int i;	
	for(i=0;i<n;i++)
	{
		cin>>a[i];
	}

	Linklist L(a,n);	
	cin>>pos;	
	cin>>x;
	L.insret(pos,x); 
	for(i=0;i<n;i++)  	
	{
		cout<<a[i]<<" ";
	}
	cout << endl;
	L.PrintList();

	delete [] a;
	getchar();
	return 0;
}

  • 打赏
  • 举报
回复
搜一下怎么跟踪调试自己跟踪一下。

64,649

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧