数据结构与算法
皮卡皮卡~
⚡️耕耘于黑暗,服务于光明⚡️
展开
-
W1 概念易错点
W1 概念易错点知识点1、 算法vs程序.算法程序有穷性必须是有穷的可以是无穷的正确性必须是正确的可以是错误的描述方法伪代码、程序描述语言等只能用程序描述语言编写并可以运行2、有序表——仅描述了逻辑关系3、循环队列——是一种数据结构,是用顺序表表示的队列,没有使用队列的链式存储结构表示的循环队列4、栈——是一种抽象数据类型,可采用顺序存储或链式存储,只表示逻辑结构5、链式存储设计时,结点内 的存储单元地址一定连续小题目1、已知两个长度分别为原创 2020-07-29 23:03:24 · 285 阅读 · 0 评论 -
队列的链式存储的实现及操作
队列的链式存储的实现及操作用链表表示的队列简称为链队列, 空的链队列的队头和队尾指针均指向头结点#include <stdio.h>#include <stdlib.h>typedef struct Node{ int data; struct Node *next;}LinkQNode;typedef struct{ LinkQNode *front;原创 2017-12-03 17:00:48 · 1381 阅读 · 0 评论 -
串的定长顺序存储
串的定长顺序存储示例代码#include <stdio.h>#include <stdlib.h>#define MAXLEN 255typedef unsigned char SString[MAXLEN+1];int Concat(SString t, SString s1, SString s2);int SubString(SString sub, SString s, int p原创 2017-12-04 11:52:19 · 609 阅读 · 0 评论 -
串的堆分配存储表示
串的堆分配存储表示由于堆分配存储结构的串既有顺序存储结构的特点,处理方便,操作中对串长又没有任何限制,更显灵活。#include #include typedef struct{ char *ch; int len;}HString;int Concat(HString *t, HString *s1, HString *s2);int SubString(HS原创 2017-12-05 14:00:57 · 652 阅读 · 0 评论 -
二叉树的层次建立方式(C语言)
二叉树的层次建立方式(C语言)二叉树的层次建立方式与先序、中序、后序建树的方式有较大区别。类似于深搜用递归、广搜用队列。输入一组整数,0代表结点不存在,-1代表输入结束有很多C++版本了,所以在这里完全用C语言实现原创 2017-11-24 20:46:57 · 5758 阅读 · 6 评论 -
栈的顺序存储的实现与操作
栈的链式表示的实现与操作链栈和链表很类似,可以说是一个只能在链头插入及删除结点的链表示例代码#include #include #define STACK_INIT_SIZE 100#define STACKINCREMENT 10typedef struct{ char *base; char *top; char StackSize;}SeqSta原创 2017-11-27 13:35:01 · 441 阅读 · 0 评论 -
数据结构复习资料
数据结构复习资料栈和队列的共同特点是( )。 A.只允许在端点处插入和删除元素 B.都是先进后出 C.都是先进先出 D.没有共同点 用链接方式存储的队列,在进行插入运算时( ). A. 仅修改头指针 B. 头、尾指针都要修改 C. 仅修改尾指针 D.头、尾指针可能都要修改以下数据结构中哪一个是非线性结构原创 2017-12-07 08:41:54 · 9097 阅读 · 2 评论 -
串的模式匹配算法
串的模式匹配算法子串的定位操作通常称作串的模式匹配,是各种处理系统中最重要的操作之一。#include <stdio.h>#include <stdlib.h>#define MAXSTRLEN 100int next[MAXSTRLEN];typedef unsigned char SString[MAXSTRLEN + 1];int Index(SString s, SString t原创 2017-12-06 20:21:14 · 491 阅读 · 1 评论 -
共享栈
共享栈共享栈能减少预分配空间过多造成的浪费,又能降低发生栈上溢而产生错误中断的可能性示例代码#include <stdio.h>#include <stdlib.h>#define MAXSIZE 50typedef struct{ int data[MAXSIZE]; int top1; int top2;}SharedStack;int InitSStack(S原创 2017-11-27 18:13:59 · 1548 阅读 · 4 评论 -
矩阵的压缩存储--特殊矩阵--带状矩阵
矩阵的压缩存储–特殊矩阵–带状矩阵带状矩阵指矩阵中所有的非零元素都集中在以对角线为中心的带状区域中本篇以最常见的三对角带状矩阵为例,示例代码:#include <stdio.h>#include <stdlib.h>#define N 100int a[N][N], sa[N*N];int main(void){ int i, j, k; int n, m; pri原创 2017-12-11 18:12:58 · 5395 阅读 · 0 评论 -
队列顺序存储的实现及操作
队列顺序存储的实现及操作普通的顺序存储的队列因其存储方式的问题出现假溢出的现象,即队头不在存储空间开始的位置,而队尾在存储空间的结束的位置,此时无法再入队新元素,但存储空间还未满。为了解决假溢出现象并使得队列空间得到充分利用,一个较巧妙的方法是将顺序队列看成一个环状的空间,即规定最后一个单元的后继为第一个单元,形象地称之为循环队列(circular Queue)。示例代码#include <stdi原创 2017-12-02 21:55:30 · 2116 阅读 · 0 评论 -
矩阵的压缩存储--特殊矩阵--三角矩阵
矩阵的压缩存储–特殊矩阵–三角矩阵三角矩阵大体分为三类:对称矩阵、下三角矩阵和上三角矩阵。#include <stdio.h>#include <stdlib.h>#define N 100int a[N][N], sa[2*N];int main(void){ int i, j, k; int n, m; printf("请输入矩阵的行数和列数: ");原创 2017-12-10 20:13:12 · 3002 阅读 · 0 评论 -
算法和算法分析
算法和算法分析 算法是对特定问题求步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。 算法具有下列5个重要特性 (1)有穷性 (2)确定性 (3)可行性 (4)输入 (5)输出 算法设计目标 (1)正确性 (2)可读性 (3)健壮性 (4)效率与低存储量需求 算法效率的度量(1)事后统计的方法 (2)事前分析估算的方法关于计原创 2017-09-06 12:24:08 · 281 阅读 · 0 评论 -
预定义常量和类型
#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1#define OVERFLOW -2typedef int Status;typedef int Boolean;原创 2017-09-06 14:19:32 · 718 阅读 · 0 评论 -
结构体数组
结构体数组 结构体数组相对于顺序表的优势在于可以用每个结点存储每个个体的信息,相对于链表的优势在于操作简便;结构体数组的劣势在于插入、删除操作占用资源过多,并且有时候无法分配足够的连续空间。 结构体数组的实现及操作以学生信息管理为例 类型定义#define LIST_LEN 1000typedef struct{ char num[10]; //学号 char原创 2017-09-10 19:18:31 · 5590 阅读 · 0 评论 -
线性表的顺序存储与实现
线性表的顺序存储与实现 线性表的顺序存储是指在内存中用一组地址连续的存储单元一次存储线性表的各元素,用这种存储形式存储的线性表称为顺序表。 之前没看书的时候还以为线性表的顺序存储指的是结构体数组,后来看了下书发现是一个含有数组的结构体,其实我个人觉得结构体数组比较好用,含有数组的结构体和数组的区别不大,只是多了对数组信息的存储。 下面先介绍顺序表吧(以存储的数据为整数为原创 2017-09-06 19:52:47 · 2769 阅读 · 2 评论 -
线性表的链式表示和实现
线性表的链式表示和实现首先来看一下线性表的顺序存储和链式存储的区别 顺序存储结构 —— 可随机存储,但插入或删除需要移动大量元素 链式存储结构 —— 快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl + Q插入链接 Ctrl + L插入代码 Ctrl + K插入图片 Ctrl + G提升标题 Ctrl +原创 2017-09-21 08:37:01 · 650 阅读 · 0 评论 -
双向循环链表
双向循环链表双向链表其实就是普通的单链表的每个结点再加上一个指向前驱的指针 如果再将头尾链接起来,就构成了双向循环链表示例代码#include typedef struct DuLNode{ int data; struct DuLNode *prior, *next;}DuLNode;DuLNode* createNullList(); /原创 2017-11-18 14:12:15 · 255 阅读 · 0 评论 -
栈的链式存储的实现与操作
include include define MAXSIZE 50typedef struct{ char element[MAXSIZE]; int front; int rear; }SeqQueue; void InitQueue(SeqQueue *Q) { Q->front = Q->rear = 0; } int IsEmp原创 2017-11-29 20:09:27 · 1129 阅读 · 0 评论 -
循环链表
循环链表和普通链表差别不大,只是将尾结点指向头结点。如果设一个尾指针指向尾结点可以使在链尾添加结点和两链表合并的操作变得简单快捷,并且尾指针所指向的结点指向的结点即为头结点,因此又可省略头指针。原创 2017-11-10 17:12:51 · 424 阅读 · 0 评论 -
数据结构绪论
数据结构绪论 数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作等的学科。基本概念和术语数据(Data):是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理 的符号的总称(整数、实数、字符串、图像、声音等)。 数据元素(Data Element):是数据的基本单位,具有完整确定的实际意义,在计算机程序中通常作为一个整体进行考原创 2017-09-06 12:03:42 · 184 阅读 · 0 评论