
数据结构与算法
明之季
这个作者很懒,什么都没留下…
展开
-
什么是算法?
什么是算法?算法的定义算法的特性算法设计的要求算法效率的度量方法时间复杂度与空间复杂度 算法的定义 算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。 算法的特性 算法有五大基本特征,即:输入,输出,有穷性,确定性和可行性。 (1) 输入: 一个算法可以有零个或者多个输入; (2) 输出: 一个算法最起码会有一个或者多个输出; (3) 有穷性: 它...转载 2020-03-13 16:25:55 · 448 阅读 · 0 评论 -
有一个单项的链表,在没有头结点的情况下,只知道有一个指向结点B的指针p,假设这个结点B不是尾结点,删除该节点B。
问题:有一个单项的链表,在没有头结点的情况下,只知道有一个指向结点B的指针p,假设这个结点B不是尾结点,删除该节点B。 p->data = p->next->data; p->next = p->next->next; free(p->next)解析:要删除p指向的结点B,必须要将结点B前后的两个节点A和C连接起来,但是该单链表没有头结点,因此无法追溯到A,也就无法将A和C相连原创 2016-03-19 20:58:50 · 2726 阅读 · 0 评论 -
字符串拷贝
#include <stdio.h> #include <stdlib.h> #include <string.h>char *strcpy_fun(char *p) { int len = strlen(p); char *a = (char*)malloc(len+1); char *copy = a; while(len--) { *a+原创 2016-03-10 14:01:38 · 414 阅读 · 0 评论 -
线性表—顺序存储(C语言)
//数组实现线性表(顺序表) struct node { ElemType data[MAXSIZE]; //存放线性表的数组 int length; //线性表的长度 }; typedef struct node SeqList;//顺序表的初始化(置空) void SeqListInit(SeqList L) { L.length = 0; }//顺序原创 2016-02-26 21:14:06 · 845 阅读 · 0 评论 -
二叉堆
二叉堆二叉堆本质上是一种完全二叉树,它分为两个类型:1、最大堆2、最小堆插入节点删除节点构建二叉堆1.插入节点2.删除节点3.构建二叉堆堆的代码实现 二叉堆本质上是一种完全二叉树,它分为两个类型: 1、最大堆 2、最小堆 什么是最大堆呢?最大堆任何一个父节点的值,都大于等于它左右孩子节点的值。 什么是最小堆呢?最小堆任何一个父节点的值,都小于等于它左右孩子节点的值。 二叉堆的根节点叫做堆顶。 ...转载 2018-10-06 09:21:25 · 183 阅读 · 0 评论