数据结构
koala__
这个作者很懒,什么都没留下…
展开
-
DS---顺序表的相关操作
顺序表顺序表:用一段地址连续的存储单元依次存储数据元素的线性结构地址连续的空间:一般情况下采用数组,但数组有静态数组和动态数组,所以顺序表分为:静态顺序表和动态顺序表首先我们先来看看两种顺序表的结构:静态顺序表#define MAX_SIZE 10typedef int DataType;//int的别名,如此定义方便后期数据类型修改struct SeqList ...原创 2019-04-15 19:13:33 · 286 阅读 · 0 评论 -
链表的相关操作
链表:一种链式存储的线性表,用一组地址任意的存储单元存放线性表的数据元素,称存储单元为一个节点。typedef int SListDataType;//链表中的一个结点typedef struct Node { SListDataType value;//值 struct Node *next;//下一个结点的地址}Node;//Single Listtypedef st...原创 2019-04-20 22:06:49 · 99 阅读 · 0 评论 -
链表的习题(一)
1.删除链表中值为v的结点保存值为v节点的前一个节点 释放置为v的节点 保存的节点指向值为v节点的下一个节点地址void SListRemove(SList *s, SListDataType v) { if (s->first == NULL) { return; } if (s->first->value == v) { Node *secon...原创 2019-04-20 23:12:30 · 279 阅读 · 0 评论 -
链表习题(二)
1.查找单链表的倒数第K个节点设置两个指针(一个记为快指针,一个记为慢指针),都先指向头节点 让快指针先走k-1步 快、慢指针都一步一步往下走,知道快指针为空,慢指针所在位置就是K节点所在位置struct ListNode* FindKthToTail(struct ListNode* PListHead, unsigned int k) { if (PListHead == ...原创 2019-04-21 00:51:48 · 252 阅读 · 0 评论 -
插入排序、选择排序
插入排序每一步将一个待排序的元素,按其排序码的大小,插入到前面已经排好序的一组元素的合适位置上去,直到元素全部插完为止直接插入排序当插入第i(i>=1)个元素时,前面的array[0]、array[1]......array[i-1]已经排好序,此时用array[i]的排序码与array[i-1],array[i-2],.....的排序码顺序进行比较,找到插入位置将array[i...原创 2019-05-21 17:45:36 · 90 阅读 · 0 评论 -
树型结构之二叉树
树的定义由N(N>=0)个结点构成的集合。有一个特殊的结点,称为根节点,根节点没有前驱结点。结点:包括一个数据元素及若干指向其他子树的分支(指针(索引))结点的度:结点所拥有子树的个数分支结点:度不为0的结点,分支结点也称为非终端结点。一棵树中除叶结点外的所有结点都是分支结点。祖先结点:从根节点到该结点所经分支上的所有节点。子孙结点:以某结点为根节点的子树中所有结...原创 2019-05-26 21:53:00 · 125 阅读 · 0 评论 -
二叉树的习题
求树中结点个数int Size2(Node *root) { if (root == NULL) { return 0; } else if (root->left == NULL && root->right == NULL) { return 1; } else { int left = Size2(root->left); int rig...原创 2019-05-27 21:28:39 · 301 阅读 · 0 评论 -
冒泡排序、快速排序、
冒泡排序每次冒泡,把一个最大的数挤到无序部分的最后去。如果遍历整个无序区间期间时,一次交换都没发生说明无序区间是有序的void BubbleSort(int array[], int size) { for (int i = 0; i < size; i++) { int isSorted = 1; for (int j = 0; j < size - 1 - ...原创 2019-05-23 17:21:57 · 611 阅读 · 0 评论