抽象数据类型——表

数据结构与算法分析.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


心得:快疯了,自己实现好难,应该说现在想要看懂别人的程序都难,一定要把指针牢牢掌握;刚开始大家都一样,不要烦躁。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值