15

严蔚敏视频 笔记15

三、十字链表

增加两个指针
一个指示同一行下一个非零元
一个指示同一列下一个非零元
非零元个数有增减时很方便

typedef struct OLNode {
    int i,j; //
该非零元的行和列下标

    ElemType e;
    struct OLNode *right, *down; //
该非零元所在的行表和列表的后继链域
} OLNode, *OLink;

typedef struct {
    OLink *rhead,*chead; //
行和列链表头指针向量基址由CreateSMatrix分配

    int mu,nu,tu; //
稀疏矩阵的行数、列数喝非零元的个数
} CrossList;

矩阵加法 逐行处理

算法:修改指针


数组部分小结:
1.
了解数制的两种存储表示方法,掌握数组在以行为主的存储结构中的地址计算方法
2.
掌握对特殊矩阵进行压缩存储时的下表变换公式
3.
了解稀疏矩阵的两种压缩存储方法的特点和适用范围,领会以三元组表示时进行矩阵运算采用的处理方法

广义表图以后再讨论

第六章 树和二叉树

6.1 树的类型定义
ADT Tree {
   
数据对象:

        D
是具有相同特性的数据元素的集合
   
数据关系:
       
D为空集,则为空树
       
否则:
       
1D中存在唯一的称为根的数据元素root
       
2)当n>1,其余结点可分为mm>0)个互不相交的有限集T1,T2,…Tm,其中每一棵子树本身又是一棵符合本定义的树,称为根root的子树

   
基本操作:
       
查找:
        Root(T);
        Value(T,cur_e);
        Parent(T,cur_e);
        LeftChild(T,cur_e);
        RightSibling(T,cur_e);
        TreeEmpty(T);
        TreeDepth(T);
        TraverseTree(T,Visit());
       
插入:
        InitTree(&T);
        CreateTree(&T,definition);
        Assign(T,cur_e,value);
        InsertChild(&T,&p,i,c);
       
删除:
        ClearTree(&T);
        DestroyTree(&T);
        DeleteChild(&T,&p,i);
}

基本术语
结点:数据元素+若干指向子树的分支
结点的度:分支的个数
树的度:树中所有结点的度的最大值
叶子结点:度为零的结点
分支结点:度大于零的结点
从根到结点的路径:由从根到该结点所经分支和结点构成
孩子结点、双亲结点、兄弟结点、祖先结点、子孙结点
结点的层次:假设根结点的层次为1,第l层的结点的子树根结点的层次为1+l
树的深度:树中叶子结点所在的最大层次

森林:是m(m>=0)棵互不相交的树的集合

任何一棵非空树是一个二元组
Tree=(root,F)
root
为根结点 F为子树森林


有向树
1
)有确定的根
2
)树根和子树根之间为有向关系

有序树无序树的区别在于:
子树之间是否存在次序关系

通常讨论的是无序树

和线性结构比较:
线性结构                                                  树结构
第一个数据元素(无前驱)                  根结点(无前驱)
最后一个数据元素(无后继)              多个叶子结点(无后继)
其他数据元素(一个前驱一个后继) 树中其他结点(一个前驱多个后继)

6.2 二叉树的类型定义
二叉树或为空树;或是由一个根结点加上两棵分别称为左子树和右子树的、互不相交的二叉树组成

二叉树有五种基本形态
空树 一个根结点 只有左子树 只有右子树 有左右子树
概念也不同于有序树

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值