请问您能帮我看几道数据结构和算法的题吗?20个财富值!!
发布网友
发布时间:2022-09-25 14:49
我来回答
共2个回答
热心网友
时间:2023-09-18 10:01
#include <iostream>
#include <cmath>
using namespace std;
struct Node
{char a;
Node *next;
};
class LinkList
{private:
Node *head;
public:
LinkList();
~LinkList();
void CreateList(int n);
int Search(int e);
void ListDisplay();
Node* Headreturn()
char Delete(int i,Node** pt);
};
LinkList::LinkList()
{head=new Node;
head->next=NULL;
}
LinkList::~LinkList()
{Node *p;
while(head)
{p=head;
head=head->next;
delete p;
}
head=NULL;
}
void LinkList::CreateList(int n)
{Node *p,*s;
p=head;
cout<<"请依次输入"<<n<<"个字母:"<<endl;
for(int i=0;i<n;i++)
{s=new Node;
cin>>s->a;
s->next=p->next;
p->next=s;
p=s;
}
}
int LinkList::Search(int e)
{
Node *p;
int j=1;
p=head->next;
while(p&&int(p->a)!=e)
{p=p->next;
j++;
}
if(p==NULL) return 0;
else return j;
}
void LinkList::ListDisplay()
{Node *p;
p=head->next;
int i;
while(p)
{cout<<p->a<<endl;
p=p->next;
i++;
}
}
char LinkList::Delete(int i,Node** pt)
{char b;
Node *p,*q;
p=head;
int j=0;
while(p->next&&j<i-1)
{
p=p->next;
j++;
}
if(!p->next||j>i-1) throw"位置异常";
else
{q=p->next;
p->next=q->next;
}
b=q->a;
delete q;
*pt=p->next;
return b;
}
int main(void)
{LinkList L1,L2;
int n1,n2;
cout<<"请输入集合A中字母个数:";
cin>>n1;
cout<<"请输入集合B中字母个数:";
cin>>n2;
L1.CreateList(n1);
L2.CreateList(n2);
L1.ListDisplay();
L2.ListDisplay();
Node *p;
Node *q;
int e;
int i=1;
p=L1.Headreturn();
q=L2.Headreturn();
p=p->next;
q=q->next;
while(p)
{e=(int)(p->a);
if(L2.Search(e)==0)
{int c=L1.Search(e);
cout<<c<<endl;
L1.Delete(c,&p);
cout<<"L1"<<endl;
L1.ListDisplay();
continue;
//cout<<int(L1.Delete(c));
}
p=p->next;
}
cout<<"集合A和B的交集为:"<<endl;
L1.ListDisplay();
return 0;
}
如上,可以运行,主要释放指针错误,在delete()函数中。
热心网友
时间:2023-09-18 10:01
#include <iostream>
#include <cmath>
using namespace std;
struct Node
{char a;
Node *next;
};
class LinkList
{private:
Node *head;
public:
LinkList();
~LinkList();
void CreateList(int n);
int Search(int e);
void ListDisplay();
Node* Headreturn()
char Delete(int i,Node** pt);
};
LinkList::LinkList()
{head=new Node;
head->next=NULL;
}
LinkList::~LinkList()
{Node *p;
while(head)
{p=head;
head=head->next;
delete p;
}
head=NULL;
}
void LinkList::CreateList(int n)
{Node *p,*s;
p=head;
cout<<"请依次输入"<<n<<"个字母:"<<endl;
for(int i=0;i<n;i++)
{s=new Node;
cin>>s->a;
s->next=p->next;
p->next=s;
p=s;
}
}
int LinkList::Search(int e)
{
Node *p;
int j=1;
p=head->next;
while(p&&int(p->a)!=e)
{p=p->next;
j++;
}
if(p==NULL) return 0;
else return j;
}
void LinkList::ListDisplay()
{Node *p;
p=head->next;
int i;
while(p)
{cout<<p->a<<endl;
p=p->next;
i++;
}
}
char LinkList::Delete(int i,Node** pt)
{char b;
Node *p,*q;
p=head;
int j=0;
while(p->next&&j<i-1)
{
p=p->next;
j++;
}
if(!p->next||j>i-1) throw"位置异常";
else
{q=p->next;
p->next=q->next;
}
b=q->a;
delete q;
*pt=p->next;
return b;
}
int main(void)
{LinkList L1,L2;
int n1,n2;
cout<<"请输入集合A中字母个数:";
cin>>n1;
cout<<"请输入集合B中字母个数:";
cin>>n2;
L1.CreateList(n1);
L2.CreateList(n2);
L1.ListDisplay();
L2.ListDisplay();
Node *p;
Node *q;
int e;
int i=1;
p=L1.Headreturn();
q=L2.Headreturn();
p=p->next;
q=q->next;
while(p)
{e=(int)(p->a);
if(L2.Search(e)==0)
{int c=L1.Search(e);
cout<<c<<endl;
L1.Delete(c,&p);
cout<<"L1"<<endl;
L1.ListDisplay();
continue;
//cout<<int(L1.Delete(c));
}
p=p->next;
}
cout<<"集合A和B的交集为:"<<endl;
L1.ListDisplay();
return 0;
}
如上,可以运行,主要释放指针错误,在delete()函数中。
热心网友
时间:2023-09-18 10:01
我水平有限,试试?
我邮箱frogoscar@163.com
你可以把问题发给我,我尽力。来自:求助得到的回答
热心网友
时间:2023-09-18 10:01
我水平有限,试试?
我邮箱frogoscar@163.com
你可以把问题发给我,我尽力。来自:求助得到的回答
...个点死活想不通,很想碰到个可以帮我解答下问题的导师。
java语言在编程语言里,是相对来说有一定难度的一门语言,如果是出于爱好自学,不妨去各大论坛浏览资料,向大神提问获得解答,也可以寻找优质的java语言群,进去同大家一起学习,团结才是力量,三人行必有我师,不仅可以加速学习进度,同时也可以给枯燥的生活增添些许乐趣。如果是为了就业,同时自己对编程了...
非结构化数据如何可视化呈现?
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准...
考研,数据结构,算法设计题要求是代码还是伪代码?如果是伪代码,各种语言...
比如如下算法【简单示例】输入3个数,打印输出其中最大的数。可用如下的伪... 考研,数据结构,算法设计题要求是代码还是伪代码?如果是伪代码,各种语言的伪代码形式一样吗?有没有要求?比如如下算法【简单示例】输入3个数,打印输出其中最大的数。可用如下的伪代码表示:Begin(算法开始)输入A,B,CIF A>B 则 A→Ma...
...分之一加三十二分之一加六十四分之一。 简便算法!
二分之一加四分之一加八分之一加十六分之一加三十二分之一加六十四分之一。 简便算法! 2013-09-20 13:02 匿名 | 来自手机知道 | 分类:数据结构及算法 这是一道来自手机的问题 您的回答被采纳后将获得系统奖励20(财富值+经验值) +紧急提问奖励0(财富值+经验值) 扫描二维码下载 下载知道APP10分钟有问...
3/2-5/6+7/12-9/20+11/30-13/42+15/56的简算法
2013-09-29 19:12 匿名 | 来自手机知道 | 分类:数据结构及算法 这是一道来自手机的问题 您的回答被采纳后将获得系统奖励20(财富值+经验值) +紧急提问奖励0(财富值+经验值) 扫描二维码下载 下载知道APP10分钟有问必答! 建议:可使用微信的“扫一扫”功能扫描下载 分享到: 2013-09-29 19:22网友采纳 -9/...
设计一个算法将一棵以二叉链方式存储的二叉树t按顺序方式存储到数组A中...
char A[20]={NULL}; //定义字符数组存储转换后的二叉树存储结构 Ctree(t,A,1); //调用上述转换算法 //显示结果 printf("以下是转换后数组的值:\n"); for(int i=1;i<20;i++) { if(A[i]!=NULL) printf("A[%d]=%c\n",i,A[i]); } return 0; } 建议你再画图理解一下,会比较容易理解...
大连东软培训笔试题
题都不记得了,有数据结构和算法,还有基本只是和概念,变成都是比较典型的算法题。具体的题等其他人看看有没有吧,方向是这样的,东软会在一些学校办东软班,大三学生需通过笔试和面试才能进入培训班,你说的是这个吗?如果是你可以找下你上届的就是现在大四的学生,问问他们 ...
银行家算法得出的安全序列有顺序吗?如{ p3,p0,p4 ,p2, p1}和{ p3,p0...
特别说明的是,银行家算法可以得到不止一条安全顺序。能被银行家证明可行的算法都是死不了的算法 追问 你说的我明白,但要如果剩余资料同时满足p1,p2,先进行哪一个?是不是两个都可以 追答 是的只要能满足不死锁顺序的都认为是银行家的安全顺序只要能满足银行家安全顺序的都不会死锁 两者是等价的 追问 我明白...
〔算法〕排序的最低时间复杂度为什么是O(nlogn)
我有更好的答案推荐于2017-12-16 13:19:18 最佳答案 这个首先要明确一点,只用到比较的排序算法最低时间复杂度是O(nlogn),而像桶排这样的只需要O(R)(R为桶的大小)为了证明只用到比较的排序算法最低时间复杂度是O(nlogn),首先要引入决策树。首先决策树是一颗二叉树,每个节点表示元素之间一组可能的排序,它...
41.2x8.1+11.9+537×0.19有怎样的简便算法
2013-10-11 20:54 132***9550 | 来自手机知道 | 分类:数据结构及算法 这是一道来自手机的问题 您的回答被采纳后将获得系统奖励20(财富值+经验值) +紧急提问奖励0(财富值+经验值) 扫描二维码下载 下载知道APP10分钟有问必答! 建议:可使用微信的“扫一扫”功能扫描下载 分享到: 2013...
为什么大学老师教编程上课都不敲代码?
老师一般重点讲述编程的规律和格式,实际的操作要由学生课下练习。书上有的代码,上课再现场敲进电脑,没什么意义,一般都是直接拿现成的演示。而且,万一没敲对或敲错了引起问题就不好办了。还有编程主要还是要靠学生自己平时多练习,上课老师讲框架讲知识点,多要演示几道例题学生就有可能多拿几分对学生...