数据结构学习DAY1

概念

程序=数据结构+算法;

数据结构的本质----如何组织存储数据(用以提高软件效率)

MVC:软件设计架构

        M:数据的管理

        V:视图----数据的反应和人机交互

        C:逻辑控制

逻辑结构:

        线性结构:前方最多只有一个数据,后方最多也只有一个数据。

        树形结构:后方多个数据,前方一个

        网状结构:多对多

物理结构:

顺序存储的优缺点:

        优点:数据访问方便

        缺点:数据的插入不方便,内存要预分配,容易造成内存碎片

链式存储的优缺点:

        访问数据必须遍历

        插入删除效率高,不需要预分配

索引存储:通过存储数据的位置,依靠位置来寻找到数据

散列存储:通过哈希算法来实现对数据元素的查找

链表:

结点:指针域加数据域

有头链表:第一个结点没有数据域

无头链表:第一个结点有数据域

操作:创建--插入--删除--查找--修改--销毁--遍历

创建:

使用结构体创建,结构体至少包括数据域(整形、浮点型......)和指针域(用结构体定义一个指针)例:               

表头的创建:

struct link
{
    int a; //数据域
    struct node *phead; //指针域,数据类型为表结点的类型
};

表结点的创建:

struct node
{
    int data;//储存数据,除整形外,还可以为其他类型
    srtuct node *pnext;
};
插入:

用表头的pnode指向表结点,即为一个单向列表,若需增加表长度,只需要将表结点的pnext指向下一个结点,增加结束,需将最后一个表结点指向NULL。

遍历、查找与修改:

其原理相同,即为创建一个结点类型的指针,使其等于(指向)表头的head,然后通过不断的使其指向结点的pnext,直到指向null值为止,该过程即为遍历,而查找只需将停止条件的null改为乡查找的数据即可,在找到后,向结点的数据中输入新的数据,即为修改。

删除、销毁:

删除时,找到要删除的结点,然后将前一个结点的pnext指向要删除结点的下一个结点,最后使用free函数将结点释放即可。

销毁时,定义一个指针,指向头或尾结点,使用循环,调用删除函数,从头开始删除或从尾开始删除,直到表头的head指向null为止,最后释放(free)表头即可。

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值