【数据结构】学习笔记


绪论

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

线性表

在这里插入图片描述

  • 线性表的基本操作:
    • 初始化表:InitList ( &L )
    • 销毁操作:DestroyList ( &L )
    • 插入操作:LIstInsert ( &L, i, e )
    • 删除操作:ListDelete ( &L, i, &e )
    • 按值查找:LocateElem ( L, i )
    • 按位查找:GetElem ( L, i )
  • 其他常用操作
    • 求表长:Length ( L )
    • 输出操作:PrintList ( L )
    • 判空操作:Empty ( L )

线性表的定义和基本操作

** < 顺序表的定义 >**

typedef struct {
	int num;
	int people
} Customer

线性表的顺序表示

线性表的链式表示

栈、队列、数组


树与二叉树

< 二叉树的存储 >

  • 二叉树的顺序存储
#define MaxSize 100
struct TreeNode {
    ElemType value;     // 结点中的数据元素
    bool isEmpty;       // 结点是否为空
};

TreeNode t[MaxSize];

// 初始化结点标记为空
void InitTree(TreeNode *t){
    for (int i=0; i<MaxSize; i++){
        t[i].isEmpty = true;
    }
}

  • 二叉树的链式存储
#include <iostream>

typedef struct BiTNode{
    ElemType data;
    struct BiTNode *lchild, *rchild;
} BiTNode, *BiTree;

// 三叉链表
typedef struct BiTNode{
    ElemType data;
    struct BiTNode *lchild, *rchild;
    struct BitNode *parent;
} BiTNode, *BiTree;

// 定义一个空树
void InitTree(){
    BiTree root = NULL;
}

// 插入根节点
void InsertRoor(){
    BiTree root = (BiTree) malloc(sizeof (BiTree));
    root->data = {1};
    root->lchild = NULL;
    root->rchild = NULL;
}

// 插入新节点
void InsertNode(){
    BiTNode *p = (BiTNode *) malloc(sizeof (BiTNode));
    p->data = {2};
    p->lchild = NULL;
    p->rchild = NULL;
    root->lchild = p;
}

< 树的遍历 >

  • 树的后根遍历
// 树的后根遍历
void PostOrder(TreeNode *R){
    if ( R != NULL){
        while( R还有下一子树T )
            PostOrder(T);   // 后根遍历下一棵子树
        visit(R);              // 访问根节点
    }
}

算法题

查找

排序

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值