数结 C++ 1

数据结构作业记录

1

#include<iostream>
using namespace std;

template <class DataType>
class Node
{
public:
	Node(DataType x);
	~Node();
	DataType GetData();
	void SetData(DataType x);
private:
	DataType data;
	Node* next;
};

template <class DataType>
Node<DataType>::Node(DataType x)
{
	data = x;
	next = 0;
}

template <class DataType>
Node<DataType>::~Node()
{

}

template <class DataType>
DataType Node<DataType>::GetData()
{
	return data;
}

template <class DataType>
void Node<DataType>::SetData(DataType x)
{
	data = x;
}

int main()
{
	Node<double> s(3.14);
	Node<int> t(5);
	cout << s.GetData() << endl;
	t.SetData(10);
	cout << t.GetData() << endl;
	return 0;
}

3

#include<iostream>
using namespace std;

void RRotate(int *a, int k) {
	int temp;
	//1、反转a[0]~a[k-1]
	for (int i = 0, j = k - 1; i < j; i++, j--) {
		temp = a[i];
		a[i] = a[j];
		a[j] = temp;
	}

	//2、反转a[k]~a[9]
	for (int i = k, j = 9; i < j; i++, j--) {
		temp = a[i];
		a[i] = a[j];
		a[j] = temp;
	}

	//3、反转a[0]~a[9]
	for (int i = 0, j = 9; i < j; i++, j--) {
		temp = a[i];
		a[i] = a[j];
		a[j] = temp;
	}
}

int main()
{
	int i,k,a[10]={1,2,3,4,5,6,7,8,9,10};
	cout<<"循环移动前:"<<endl;
	for(i=0;i<10;i++)
		cout<<a[i]<<" ";
	cout<<endl;
	
	cout<<"循环移动多少位(0-10):"<<endl;
	cin>>k;
	
	RRotate(a,k);
	
	cout<<"循环移动后:"<<endl;
	for(i=0;i<10;i++)
		cout<<a[i]<<" ";
	cout<<endl;

	return 0;
}

4

/*
数组nums包含从0到n的所有整数,但其中缺了一个。
请编写代码找出那个缺失的整数。要求时间复杂度为O(n)。
*/

#include<iostream>
using namespace std;

int missingNumber(int* nums, int num) {
	int m, sumPre= num, sumReal=0;
	//sumPre把0~num加起来,sumReal把a[0]~a[num-1]加起来,相减得缺失数
	for (int i = 0; i < num; i++) {
		sumPre += i;
		sumReal += nums[i];
	}
	m = sumPre - sumReal;
	return m;
}


int main() {
	int nums[] = {4,3,1,2,0};
	int num = sizeof(nums) / sizeof(int);
	int m = missingNumber(nums, num);
	printf("%d", m);
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值