数据结构与算法之数据结构

插图1.jpg

数据结构中常考的一些内容总结,使用的语言是C/C++语言

一、线性表

线性表是相同数据类型的n(n>=0)个数据元素的有限序列。
线性表的顺序存储就是顺序表,顺序表的结构体

typedef struct{
int data[MaxSize];
int length;
}SqList;

但是感觉一般都是考链表,那么我们直接进入链表的重点吧

链表

//链表的节点类型
typedef struct node{
    int val;
    struct node* next;
}node,*Linklist;

单链表反转基本成为必考的题目
这里引用一下这位同学写的答案,我个人认为写的比较好
http://blog.csdn.net/FX677588/article/details/72357389

node* reverseList(node* H)
{
    if (H == NULL || H->next == NULL) //链表为空或者仅1个数直接返回
        return H;
    node* p = H, *newH = NULL;
    while (p != NULL)                 //一直迭代到链尾
    {
        node* tmp = p->next;          //暂存p下一个地址,防止变化指针指向后找不到后续的数
        p->next = newH;               //p->next指向前一个空间
        newH = p;                     //新链表的头移动到p,扩长一步链表
        p    = tmp;                   //p指向原始链表p指向的下一个空间
    }
    return newH;
}

二、二叉树

typedef struct BitNode{
char data;
struct BitNode *lchild,rchild;
}BitNode,*BiTree;

二叉树常考的内容应该就是先序遍历,中序遍历,后续遍历

先序遍历

口诀:根左右

//先序遍历
void PreOrderTraverse(BiTree t)
{
  //注意跳出条件
    if(t != NULL)
    {
       //注意访问语句顺序
        printf("%c ", t->data);
        PreOrderTraverse(t->lchild);
        PreOrderTraverse(t->rchild);
    }
}

中序遍历

口诀:左根右

//中序遍历
void InOrderTraverse(BiTree t)
{
    if(t != NULL)
    {
        InOrderTraverse(t->lchild);
        printf("%c ", t->data);
        InOrderTraverse(t->rchild);
    }
}

后续遍历

口诀:左右根

//后续遍历
void PostOrderTraverse(BiTree t)
{
    if(t != NULL)
    {
        PostOrderTraverse(t->lchild);
        PostOrderTraverse(t->rchild);
        printf("%c ", t->data);
    }
}
以上就是数据结构与算法中数构的常考的部分,对算法感兴趣的同学可以关注我的常考的数据结构与算法之算法,希望大家帮忙点个赞哟
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一些概念 数据结构就是研究数据的逻辑结构和物理结构以及它们之间相互关系,并对这种结构定义相应的运算,而且确保经过这...
    Winterfell_Z阅读 11,311评论 0 13
  • 1、线性表、栈和队列等数据结构所表达和处理的数据以线性结构为组织形式。栈是一种特殊的线性表,这种线性表只能在固定的...
    雾熏阅读 7,106评论 0 10
  • 第一章 绪论 什么是数据结构? 数据结构的定义:数据结构是相互之间存在一种或多种特定关系的数据元素的集合。 第二章...
    SeanCheney阅读 11,076评论 0 19
  • 文/一土 运行了八年的武汉公共自行车,将在11月25日停止运营。新闻刚出时,是好几天前,我没有来得及看。再搜武汉版...
    雨下撒哈拉阅读 818评论 0 0
  • 这是一款任何场合都适用,和任何妆容搭配都不会出错的大地色系百搭眼妆。画法非常简单容易上手,即使是初学者也能很快学会...
    芙蕾娅阅读 7,846评论 26 62