pta线性表

这篇博客涵盖了线性表相关的算法问题,包括一元多项式的求导、两个有序链表序列的交集、约瑟夫环问题以及带头节点的双向循环链表的操作。内容涉及输入输出格式、样例以及具体算法实现的描述。
摘要由CSDN通过智能技术生成

7-1 一元多项式求导

设计函数求一元多项式的导数。

#include<iostream>
using namespace std;
struct Node
{
	int data;
	Node* next;
};
Node* lend = NULL;//定义一个指针,一直指向最后一个节点 
void Insert(int data)
{
	Node* p = new Node;//分配内存,把新节点存入当前链表里 
	p->data = data;
	p->next = NULL;
	lend->next = p;
	lend = p;//当插入p后,p就是最后一个节点 
}
void getout(Node* Head)
{
	Node* t1 = Head->next;//头结点不存东西,所以t1从Head->next开始 
	Node* t2 = t1->next;
	int flag = 0;
	while(t1 && t2)
	{
		if(flag)cout<<" ";//控制输出空格 
		cout<<t1->data*t2->data;//输出系数 
		cout<<" "<<t2->data - 1;//输出指数 
		flag = 1;	//这个地方两次都忘记了,该打该打 
	    if(t2->next == NULL)break;
		t1 = t2->next; 
		t2 = t1->next;   
	 } 
}
int main()
{
	Node* Head = new Node;//定义并初始化头结点 
	Head->next = NULL;
	lend = Head;//此时头结点就是最后一个节点 
	
	
	int a,b;
	int flag = 1;
	while(cin>>a>>b)
	{
		if(b != 0)
		{
			flag = 0;
			Insert(a);
		    Insert(b);
		}
	}
	if(flag)
	{
		cout<<"0 0"<<endl;
		return 0;
	}
    getout(Head);
    return 0;
	
}

输入格式:

以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。

输出格式:

以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。

输入样例:

3 4 -5 2 6 1 -2 0

输出样例:12 3 -10 1 6 0

 

7-2 两个有序链表序列的交集

已知两个非降序链表序列S1与S2,设计函数构造出S1与S2的交集新链表S3。

输入格式:

输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−1表示序列的结尾(−1不属于这个序列)。数字用空格间隔。

输出格式:

在一行中输出两个输入序列的交集序列,数字间用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值