![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
基于C语言的基础数据结构
青-冥
这个作者很懒,什么都没留下…
展开
-
数据结构:串
#include <stdio.h> #include <string.h> /* * 串,笔试面试主要以字符串的形式考试 * 数据结中的串,以''包括起来的序列.例如'abcd' * 串的基本概念: * 空串:长度为0的串,'' * 空格串:全部都由空格组成' ' * 串的长度:例如'abcd',长度为4 * 串相等:串的每个字符都相等,并且长度相等.例如'abcd'=='abcd' * 子串:串中任意连续的子序列.空串是任意串的.原创 2022-03-24 10:15:33 · 1145 阅读 · 0 评论 -
数据结构:一元多项式
1.头文件(poly.h) #pragma once typedef struct { float coef;//系数 int expn;//指数 }trem,ElemType; typedef struct PNode { ElemType data;;//数据 (系数+指数) struct PNode* next;//后继指针 }PNode,*Poly; //初始化带头结点多项式 void InitPoly(Poly po); //往po多项式插入数据val,按照指数升序 bool .原创 2022-03-24 10:10:52 · 661 阅读 · 0 评论 -
数据结构:循环链表
1.头文件(clist.h) #pragma once //带头结点的循环链表,其尾节点的后继为头结点(不是NULL) //节点的结构和单链表一样 typedef int ElemType; typedef struct CNode//循环链表节点 { ElemType data;//数据 struct CNode*next;//后继指针 }CNode ,*CList; //初始化plist void InitList(CList plist); //往plist中头部插入数字val bool.原创 2022-03-24 10:05:13 · 77 阅读 · 0 评论 -
数据结构:顺序栈
1.头文件(seqstack.h) #pragma once //不定长顺序栈:当栈满后能够扩容.利用顺序表保存数据 #define INITSIZE 10 typedef int ElemType; typedef struct { ElemType* base;//指向存放数据的指针 ElemType* top;//栈顶指针,指向当前可以存放数据的地址 int stacksize;//栈总容量 }SqStack,*PSqStack;//sizeof(SqStack)==12; //栈的初始.原创 2022-03-24 10:03:11 · 1425 阅读 · 0 评论 -
数据结构:顺序队列
1.头文件(sqqueue.h) #pragma once #define MAXSIZE 100 typedef int ElemType; typedef struct SqQueue { ElemType base[MAXSIZE]; int front;//队头指针,实际是下标 int rear;//队尾指针,实际是下标,当前可以存放数据的下标 }SqQueue, * PSqQueue; //队列初始化 void InitQueue(PSqQueue pq); //入队 bool P.原创 2022-03-24 10:00:17 · 565 阅读 · 0 评论 -
数据结构:双向链表
1.头文件(dlist.h) #pragma once typedef int ElemType; typedef struct DNode { ElemType data; struct DNode* next; struct DNode* prior; }DNode,*DList; //初始化plist void InitList(DList plist); //往plist中头部插入数字val bool Insert_head(DList plist, ElemType va.原创 2022-03-24 09:56:41 · 56 阅读 · 0 评论 -
数据结构:链式栈
1.头文件 #pragma once typedef int ElemType; typedef struct LNode { ElemType data; struct LNode* next; }LNode; typedef struct LStack { LNode* top; }LStack,*PLStack; //栈的初始化 void InitStack(PLStack ps); //入栈 bool Push(PLStack ps, ElemType val); //判空 .原创 2022-03-24 09:54:19 · 77 阅读 · 0 评论 -
数据结构:链式队列
1.头文件(listqueue.h) #pragma once typedef int ElemType; typedef struct QNode { ElemType data; struct QNode* next; }QNode ,*QueuePtr; typedef struct { QNode* front;//队头指针 QNode* rear;//队尾指针 }LinkQueue;//头结点的定义 //队列初始化 void InitQueue(LinkQueue* pq); .原创 2022-03-24 09:52:25 · 761 阅读 · 0 评论 -
数据结构哈希表
/* * 哈希表也称散列表 * 描述: * 1.一种新的存储方式 * 2.根据要存储对的关键字(key)的值计算出应该存储的位置 * 特点:散列表的查找效率高,空间利用率低 * * 1.散列方法,散列函数 * 选取某个函数,依照该函数按照关键字计算元素的存储位置,并按此存放 * 2.散列表(哈希表) * 3.冲突:不同关键字映射到同一个散列地址 * key1!=key2; * H(key1)==H(key2); * 近似等于数学上多对一 * 4.同义词 * 具有相同函数值的多个关键字 * eg:key1..原创 2022-02-25 16:20:57 · 399 阅读 · 0 评论 -
C语言数据结构8大排序
排序难点:算法多,容易混淆 1.直接(简单)插入排序:扑克牌 特点:越有序越快,完全有序O(n),非常重要,这个是希尔排序的基础 2.希尔(shell)排序 分组后利用直接插入排序 3.冒泡排序: 两两比较,大的往后走 * 4.快速排序: 算法: 1.从后往前找比基准小的数字,找到往前挪 2.从前往后找比基准大的数字,找到往后挪 3.重复1.2 缺点:...原创 2022-03-02 10:06:16 · 172 阅读 · 0 评论 -
C语言数据结构的8个排序
排序难点:算法多,容易混淆 1.直接(简单)插入排序:扑克牌 特点:越有序越快,完全有序O(n),非常重要,这个是希尔排序的基础 2.希尔(shell)排序 分组后利用直接插入排序 3.冒泡排序: 两两比较,大的往后走 * 4.快速排序: 算法:1.从后往前找比基准小的数字,找到往前挪 2.从前往后找比基准大的数字,找到往后挪 3.重复1.2 ...原创 2022-02-25 15:06:08 · 989 阅读 · 0 评论