首页 > 编程语言 > 详细

1.数据结构和算法的基础笔记

时间:2015-10-17 13:26:15      阅读:284      评论:0      收藏:0      [点我收藏+]
       解决具体的问题,首先要把具体的问题抽象成为数学模型,要想得到模型,必须知道数据之间的关系,在数据结构中数据之间的关系主要有
两种,线性关系和非线性关系,其中非线性关系又分为属性关系和图关系。
        
        基本的术语:
数据   数据元素   数据项(项或者字段)  结构(关系)原子类型  结构类型  
ADT(抽象数据组织和与之相关联的操作)
ADT 抽象数据的类型名{
    数据对象
    数据关系
    基本操作
}

算法:正确性,确定性,有穷性,输入,输出,要求:正确性,可读,健壮,效率以及存储的效率


1.线性数据结构
    线性表的定义:前驱和后继 ,数据元素,记录,数据项,
    顺序表:数组,存储结构,每一个元素的位置:di = dl+(i-1)*C

> 多维数组的存储方式

    单链表:基本操作,删除节点,添加节点,尾插法(增加一个尾指针),头插法
    循环链表:循环的条件在于判断:curr.next()  != head 
    双链表:删除,添加,查找。
     查找算法,比较有意思的一点:
   Node<E> node(int index) {
        // assert isElementIndex(index);
        if (index < (size >> 1)) {//前半截从头开始查
            Node<E> x = first;
            for (int i = 0; i < indexi++)
                x = x.next;
            return x;
        } else {//后半截从尾巴开始查
            Node<E> x = last;
            for (int i = size - 1; i > indexi--)
                x = x.prev;
            return x;
        }
    }  

链表应用:
链式存储下一元多项式的加法
链式链表按照一定的顺序(每隔几个元素)删除一定的元素
链表


栈和队列

堆栈的基本的操作:堆栈的初始化,判端栈空操作,判断栈满的操作,取顶端的元素,出栈,入栈,

堆栈的应用:数制的转换,表达式的计算和判断,转换问题和递归问题






























1.数据结构和算法的基础笔记

原文:http://www.cnblogs.com/zhailzh/p/86e602d68e0d8ec563d200c9a5c5b8de.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!