新手数据结构入门理解必看!!!!!!

什么是数据结构:

是一门研究数据之间关系的一门学科,主要有两类需要研究的关系:
    物理关系:数据在内存中的实际关系。
        顺序结构:根据数据之间的相对位置确定关系。
        链式结构:在数据中添加一个指针域,用于指向跟它有关系的数据。
    逻辑关系:无视物理关系,人为添加一种关系。
        集合:数据之间同属于一个集体,除此之外没有任务关系。
        表:数据之间存在一对一关系,如:数组(顺序表),链表(链式表)。
        树:数据之间存在一对多关系。
        图:数据之间存在多对多关系。
我们常用说的数据结构指的是逻辑关系,而数据结构在内存的存储方式,指的是物理关系。
每种逻辑结构采用什么的物理结构存储并没有明确规定,通常以代码实现的难度、以及对时间、空间复杂度的要求,选择最合适的物理结构存储,也有可能是链式和顺序混合存储。

算法:

 广义:解决特定问题的方法。
 狭义:数据结构的运算。

学习数据结构的三个关键点:

1、物理结构
2、逻辑结构
3、结构的运算

数据结构常有的运算:

创建数据结构:create
销毁数据结构:destroy
清除所有元素:clear
遍历数据结构:show、print
从数据结构中删除一个元素:delete
把一个元素插入到数据结构:install
修改数据结构中的某个元素:modify
查询数据结构的中元素:query、find
访问其中一个元素:access

功能被限制的表:

栈:把表结构限制为只有一个端口进出,元素先进后出FILO。
    而栈内存正是使用了这种结构管理内存,所以才叫栈内存。

    bool is_pop(int* in,int* out,size_t len)
    {
        创建栈
        for i to len
            入栈 in[i]
            while(out[j] == top)
                出栈 j++
        return is_empty;  
    }
队列:把一个表结构限制成有两个端口,一个端口只能进,另一个端口只能出,先进先出FIFO。
    队头 0
    队尾 0
    队空 队头==队尾
    队满 队头==(队尾+1)%cal;
    出队 front = (front+1)%cal;
    入队 rear = (rear+1)%cal;
    队头元素 ptr[front]
    队尾元素 (cal+rear-1)%cal

链式表:

元素:由数据域,指针域组成,元素之间使用指针域连接,这种叫链式存储结构。
如果元素中只有一个指针域,且指向下一个元素,这样元素之间就只存在一对一关系,这种结构叫链式表。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值