Thanks to visit codestin.com
Credit goes to github.com

Skip to content

chuanchuan11/DataStruct

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

数据结构代码:

1. 线性结构

01 顺序表

    待更新

02 单链表

    待更新

03 静态链表

    待更新

04 双向链表

* 初始化:
   Head->pre = Head->next = NULL //指向空
* 头插入:
   为空时://pHead->next->pre = pNewNode; //不需要,因为该指针为NULL
   非空时:pHead->next->pre = pNewNode;   //需要

05 双向循环链表

 * 初始化:
     Head->pre = Head->next = Head; //指向自身
 * 为空:
     Head->next = Head;
 * 遍历结束:
     cur->next = Head;

总结

  线性表分为顺序存储和链式储存; 链式储存分为: 单链表, 静态链表, 循环链表, 双向链表

2. 栈和队列

01 栈

        是一种"先进后出"的存储结构
    * 静态栈:数组实现
      (1)栈结构
          只需栈数组和栈顶位置两个元素就可确定一个栈
      (2)初始化
          栈顶位置为-1
          
    * 动态栈:链表实现
      (1)栈结点
          指针域和数据域
      (2)栈结构
          bottom和top指针,bottom指针永远指向栈底结点,top指针指向栈顶结点
      (3)初始化
          bottom和top指针,都指向栈底结点

02 队列

        是一种"先进先出"的存储结构
    * 静态队列:数组实现
       (1)静态队列必须是循环队列
       (2)队列结构
           数据域为固定长度数组,front为第一个元素下标,rear为最后一个有效元素的下个位置
       (3)初始化
           front和rear为0
       (4)入队和出队下标计算
            front=(front++)%数组长度
            rear =(rear++)%数组长度
       (5)空满判断
            空:front=rear
            满:(rear+1)%数组长度 == front
            
    * 动态队列:链表实现
       (1)队列结构
          队头指针和队尾指针,及队列元素个数
       (2)初始化
          队头指针指向头结点,头结点指向NULL
          队尾指针指向尾结点, 尾结点指向NULL
          头尾结点不存放数据
       (3)入队
          首次入队,队头结点和队尾结点必须都指向首结点
          除首次入队外,尾结点都指向新结点,新结点指向NULL

3. 树和二叉树

01 二叉树的存储

    顺序存储:需要将二叉树转化为满二叉树,在申请的连续空间中从上到下,从左到右依次存储,比较浪费空间
    链式存储:动态申请空间进行存储【常用】

02 二叉树的遍历

    * 四种遍历方法:
        先序/中序/后序/层次遍历
    * 实现方式:      
        先序/中序/后序/遍历【递归实现】
        先序/中序/后序/遍历【堆栈实现】
        层次遍历【队列实现】
    * 二叉树初始化注意点:
        推出判断:考虑换行符\n
        传参初始化:必须传指针
        返回值初始化:返回指针

4. 查找算法

    待更新

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages