本文主要是介绍抽象数据类型——表,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
数据结构与算法分析.c 实现 总结
抽象数据类型:abstract data type,首先顾名思义,①她是一种数据类型,就像整数、字符,类似于加减乘除,他有自己的操作,例如:并和查找;②并没有什么法则规定一定要有什么操作,具体的看设计要求;③每种数据类型的实现方式也是不同的,主要有 数组实现和链表实现,不同的实现对于不同的数据结构的不同运算有不同的优缺点。
基础名词:表、空表、前驱、后继
基本操作集合:PrintList, MakeEmpty,Find,FindKth ,Insert, Delete...
数组实现;①需要对表的最大值进行估计,浪费空间
②PrintList和Find可以以线性时间执行,FindKth只花费常数,但是插入和删除的花费很大;
链表实现:①每个结构含有表元素和指向包含该元素的后继元的结构的NEXT指针
常见错误:①“memory access violation"或"segmentation violation"通常意味着指针变量包含了伪地址。可能的原因是初始化失败、或是指针指向了NULL。②malloc的使用问题,声明指向一个结构的指针并不创建该结构;给结构体分配空间而不是指针:(List *)malloc(sizeof(struct Node))
应用:
①多项式ADT:自己只实现了用数组实现
②基数排序:http://m.oschina.net/blog/86162,有一点错误
③多重表
链表的游标实现:
模仿链表的两个特性:NEXT;malloc/free
心得:快疯了,自己实现好难,应该说现在想要看懂别人的程序都难,一定要把指针牢牢掌握;刚开始大家都一样,不要烦躁。。
这篇关于抽象数据类型——表的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!