写点什么

作业 - 第 8 周

用户头像
arcyao
关注
发布于: 2020 年 12 月 12 日
1.查找两个单向链表的相交节点

使用伪代码实现,具体如下:


Node * findNode(){	//初始化两个单向链表	M = LinkList(m), N = LinkList(n);		//初始化指向链表的指针 q p	//q 指向元素少的链表 q指向数据多的链表	Node *q,p; 	if(m>=n){		q = N; p = M;	}	else{		q = M; p = N;	}	//查找节点位置	Node * res = null;	int i = 0;	do {		q= q->next;		i++;		//判断节点q是否在链表 p中		if(check(p, q, abs(n-m)+i)){			res = q;			break;		}	}while(q);		return res;}

/** **判断节点元素少链表的节点是否在节点元素大的单向链表中 **LinkList L 节点元素大的单向链表 **Node * node 节点元素少链表的节点 ** 查询截至位置*/bool check(LinkList L, Node * node, int position){ //L 为头指针,count 截至位置; p = L ->next; j = 1; while( p && j <=position ){ if (*p=*node) break; p = p -> next; j++; } if(!p || j > position) return false; return true; }
复制代码


该实现算法的计算次数为:n > m 次数 为 n(n+1)/2-(n-m+1)(n-m)/2,n==m 计算次数:n(n+1)/2。

时间复杂度为:O(n*n/2)。


2.请画出 DataNode 服务器节点宕机的时候,HDFS 的处理过程时序图

时序图如下:


DataNode1,DataNode2,DataNode3 为数据的 3 个互为备份的数据节点,datanode1 发生故障,NameNode 通知 DataNode2 或 DataNode3 将数据备份到 DataNode4 的过程。


用户头像

arcyao

关注

还未添加个人签名 2017.11.03 加入

还未添加个人简介

评论

发布
暂无评论
作业-第8周