17.3.22--关于删除

    这几天在弄数据结构的课程设计,首先我弄的题目是--多项式的运算和集合处理,通过自己敲代码,找资料,我突然发现一个关于删除的问题。

   1)首先是对于C语言数组中的删除重复元素,或者是删除指定位置·的元素,还有删除指定元素,这些都是C语言数组常见的删除问题,但是对于C语言数组元素的删除,不是像我们想象的那样,彻底将那一个内存块清理干净,而是简单的替换,就是用一个标志的数值来代替你原有的数值,然后我们能识别到这个是数组中要删除的元素即可。

----->这种删除叫做lazy deletion   (懒删除)

----->(1)某些情况下删除是一种昂贵的操作,这个时候我们可以采用懒惰删除的办法。 
(2)简单的标记要删除的节点是为已删除。然后在查找等例程里面都人为的忽视标记过的节点. 
(3)如果标记删除的节点大于总数一半,就进行一次遍历,删除所有标记节点.

  2)其实考虑删除,要考虑两点  (1)就是内存问题,若果内存大,那么就可以采用这种懒删除

                   (2)要是内存很小  ,就得把废物立刻删除,给别的程序留地方

  3)再说一下  关于链表的删除,链表元素的删除就很容易,因为他是动态分配内存,节点与节点用指针相连,那么删除时,可以直接把内存单元释放掉,比较节省内存。

posted @ 2017-03-22 10:47  小油菜1  阅读(172)  评论(0编辑  收藏  举报