`
junjie314
  • 浏览: 60129 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
文章分类
社区版块
存档分类
最新评论

程序员数据结构笔记(二)

阅读更多
1) 递推 6!=>5!=>4!=>3!=>2!=>1!=>0!
  2) 回归 720<=120<=24<=6 <=2 <=1 <=0 
  递归工作栈实现递归的机制。
  2、有关算法:
  1) 顺序,链表结构下的出栈,入栈
  2) 循環,队列的入队列,出队列。
  3) 链队列的入队列,出队列。
  4) 表达式计算:后缀表达式 35+6/4368/+*- 
          中缀表达式 (3+5)/6-4*(3+6/8) 
  由于中缀比较难处理,计算机内一般先将中缀转换为后缀。
  运算:碰到操作数,不运算,碰到操符,运算其前两个操作数。
   中缀=>后缀
  5) 迷宫问题
  6) 线性链表的递归算法 一个链表=一个结点+一个链表
  int fuction(NODE *p) {
   if(p==NULL) return 0;
   else return(function(p->next));
  }
  树与二叉树
  一、 知识点:
  1. 树的定义: data_struct(D,R);
  其中:D中有一个根,把D和出度去掉,可以分成M个部分.
  D1,D2,D3,D4,D5…DM
  R1,R2,R3,R4,R5…RM
  而子树Ri形成树.
  1) 递归定义 高度
  2) 结点个数=1 
    
    O    --0
 
 O    O  --1
 
O  O  O  O --2
 此树的高度为2
  2.二叉树定义:   
  结点个数>=0 .
  3. 术语:左右孩子,双亲,子树,度,高度等概念.
  4. 二叉树的性质
  ●层次为I的二叉树 I层结点 2I 个
  ●高度为H的二叉树结点 2H+1-1个
  ●H(点)=E(边)+1
  ●个数为N的完全二叉树高度为|_LOG2n_|
  ●完全二叉树结点编号:从上到下,从左到右. 
i结点的双亲: |_i/2_| |_i-1/2_|    1    
i结点的左孩子: 2i 2i+1  2    3  
i结点的右孩子: 2i+1 2i+2 4  5  6  7 
(根) 1为起点 0为起点        
  二叉树的存储结构:
    1) 扩展成为完全二叉树,以一维数组存储。 
     A     
  B      C  
 D      E  F 
G  H    I    
数组下标 0 1 2 3 4 5 6 7 8 9 10 11 12 
元素 A B C D E F G H         I 
    2) 双亲表示法  
数组下标 0 1 2 3 4 5 6 7 8 
元素 A B C D E F G H I 
双亲 -1 0 0 1 2 2 3 3 4 
    3) 双亲孩子表示法 
数组下标 0 1 2 3 4 5 … 
元素 A B C D E F … 
双亲 -1 0 0 1 2 2 … 
左子 1 3 4       … 
右子 2 -1 5       … 
分享到:
评论

相关推荐

    程序员数据结构笔记

    在程序员数据结构的学习中,以下几个关键知识点不容忽视: 1. **数据结构的基本概念**:数据结构指的是数据的组织方式,它定义了数据之间的关系以及操作这些数据的方法。在学习数据结构时,我们需要理解对象的定义...

    程序员数据结构笔记 知识 能力 过程

    本笔记主要关注程序员需要掌握的数据结构知识、能力以及解决问题的过程。 首先,数据结构中对象的定义是指数据的组织形式,比如是线性的、树形的还是图形的。这些对象包括线性表、栈、队列、数组、字符串(广义表不...

    程序员数据结构笔记.doc

    总的来说,程序员数据结构笔记涵盖了数据结构的基本概念、常见数据结构的操作及其时间复杂度分析,同时提供了具体的编程实例,帮助程序员理解和应用数据结构。掌握这些知识对于提升编程能力,特别是解决复杂问题的...

    程序员 数据 结构 笔记

    树是另一种非线性数据结构,特别是二叉树在很多算法中都有应用,例如二分查找和排序。集合通常涉及查找和排序操作,而图虽然不作为考试重点,但在实际问题中,如路由选择、社交网络分析等,图数据结构的应用十分广泛...

    程序员数据结构笔记很好很强大!

    程序员在日常工作中,无论是开发系统软件、应用软件还是进行数据分析,都会频繁地与各种数据结构打交道。下面我们将深入探讨数据结构的一些核心知识点。 首先,数据结构中的对象定义指的是数据的组织形式,它可以是...

    软考程序员数据结构笔记.doc

    在软考程序员的准备过程中,理解并掌握数据结构是必不可少的。以下是一些关于数据结构的关键知识点: 1. **数据结构的定义**:数据结构指的是数据的逻辑结构、存储结构以及在其上定义的操作的集合。它可以是简单的...

    黑马程序员Javase笔记

    在集合框架部分,Java提供了多种数据结构,如ArrayList、LinkedList、HashSet、TreeSet等。这些集合允许我们高效地存储和操作数据。并发修改异常(ConcurrentModificationException)通常发生在迭代集合时尝试修改...

    程序员数据结构学习笔记

    数据结构是计算机科学中至关...总之,数据结构的学习涵盖了各种抽象数据类型及其操作,理解和熟练掌握这些知识对于程序员来说至关重要,无论是在学术研究还是实际开发中,都能帮助我们设计出更高效、更优雅的解决方案。

    数据结构笔记

    这篇“数据结构笔记”可能包含了关于这个主题的深入理解和实践应用。结合给出的标签“源码”和“工具”,我们可以推测这份文档不仅讨论了理论知识,可能还涉及到了实际编程实现和相关工具的使用。 在数据结构的学习...

    程序员面试宝典笔记总结

    二、数据结构与算法 1. **数据结构**:线性结构(数组、链表、队列、栈),树结构(二叉树、AVL树、红黑树),图结构,哈希表等,理解它们的特性及操作。 2. **算法**:排序(快速排序、归并排序、堆排序)、查找...

    程序员考试补课笔记,程序员考试补课笔记

    - 数据结构:数组、链表、栈、队列、树(二叉树、平衡树)、图等,以及它们的操作和应用。 - 算法:排序(冒泡、选择、插入、快速、归并)、搜索(线性、二分、深度优先、广度优先)等基本算法的理解与实现。 2. ...

    程序员面试宝典(C/C++&数据结构&网络&数据库&操作系统)

    程序员面试宝典(C/C++&数据结构&网络&数据库&操作系统)

    黑马程序员Android学习笔记

    《黑马程序员Android学习笔记》是一份专为初学者设计的详尽教程,旨在帮助那些希望踏入安卓开发领域的人员快速掌握核心知识。这份笔记涵盖了从基础到进阶的多个主题,帮助学习者系统地理解Android应用开发的过程。 ...

Global site tag (gtag.js) - Google Analytics