数据结构线性表总结和汉诺塔问题

请先看汉诺塔代码块:

#include <stdio.h>

/**
 * Hanoi.
 */
void hanoi(int paraN, char paraSource, char paraDestination, char paraTransit) {
	printf("%d The address of paraSource is %d, the address of paraDestination is %d, the address of paraTransit is %d.\r\n", paraN, &paraSource, &paraDestination, &paraTransit);
	if(paraN <= 0) {
		//printf("%d The address of paraSource is %d, the address of paraDestination is %d, the address of paraTransit is %d.\r\n", paraN, &paraSource, &paraDestination, &paraTransit);
		return ;
	}else {
		//printf("%d The address of paraSource is %d, the address of paraDestination is %d, the address of paraTransit is %d.\r\n", paraN, &paraSource, &paraDestination, &paraTransit);
		hanoi(paraN - 1, paraSource, paraTransit, paraDestination);
		printf("%c -> %c\r\n", paraSource,paraDestination);
		hanoi(paraN - 1, paraTransit, paraDestination, paraSource);
	}
	printf("%d The address of paraSource is %d, the address of paraDestination is %d, the address of paraTransit is %d.\r\n", paraN, &paraSource, &paraDestination, &paraTransit);
	
}

/**
 * Test the hanoi function.
 */
void hanoiTest() {
	printf("---- addToTest begins. ----\r\n");
	printf("2 plates\r\n");
	hanoi(2, 'A', 'B', 'C');

	printf("3 plates\r\n");
	hanoi(3, 'A', 'B', 'C');

	printf("---- addToTest ends. ----\r\n");
}

/**
 * The entrance.
 */
int main()
{
	hanoiTest();
	return 0;
}

 

运行结果:

其时间复杂度为O(2^n),其计算公式为2^n - 1.

通过地址打印,感觉有点迷糊,不是很明白这个地方,慢慢消化理解吧。

线性表总结:

不知不觉线性表这一章节已经全部学习完了,通过这一章的学习,让我了解到很多,有一些专用名词,例如时间复杂度,空间复杂度等,也知道了线性表包含两个部分:

一:顺序表

二:链表

链表中又包括单链表、循环链表和双向链表。

同时也通过学习顺序表和链表的比较,知道了两者之间的差异性。

在实际应用中,我们要根据实际情况来判断要用什么来更节省空间和时间来解决问题。

通过老师对这章内容的讲解以及抄写相应的代码,特别是内存地址的打印,让我对计算机中的定义变量的内存分配和地址分配有了很大的好奇心,自己也初步掌握了顺序表和单链表的初始化,删除,插入等基本操作,代码速度和代码规范也有了很大的提升,也意识到了代码注释的重要性。

希望在今后的学习中,不断提高代码能力,迎难而上,多思考多理解,保持学习的兴趣,让自己变得更加优秀。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值