数据结构
c语言数据结构
凭阑偏偏
这个作者很懒,什么都没留下…
展开
-
两个有序单链表的合并
错误演示:输入数据:La:3 1 Lb:6 4 2La展示数据:1 3Lb展示数据:2 4 6void MergeSLinklist(LinkList &La, LinkList &Lb, LinkList &Lc){ LinkList pa = La->next; LinkList pb = Lb->next; LinkList pc = L...原创 2019-07-23 11:13:20 · 5740 阅读 · 1 评论 -
顺序表插入数据
1、创建顺序表2、初始化顺序表3、构建逻辑存储结构:typedef struct{ ElemType *elem; int Length; int ListSize;}SqList;函数:ListInsertSq(SqList &L,int Location,ElemType Elem)Location:在Location前插入Elem:要插入的元素首先判断L...原创 2019-07-21 13:28:33 · 8322 阅读 · 1 评论 -
两个有序顺序表的合并
大致思路存储结构typedef struct{ ElemType *elem; int Length; int ListSize;}SqList;1、初始化线性表La,Lb,Lc2、设置变量,i,j,k。i控制La元素下标,j控制Lb的元素下标,k控制Lc3、当其中某一线性表放入完成时,直接将另外线性表后面的直接放下去。...原创 2019-07-20 15:36:07 · 4202 阅读 · 0 评论 -
带头结点的单链表/删查
单链表存储结构typedef struct LNode{ ElemType data; struct LNode *next;//存放下一个链表的地址}LNode,*LinkList;插入数据void InsertSLinklist(LinkList &L,int Location,ElemType elem){ //先创建一个数据域为elem的节点 LinkList ...原创 2019-07-21 22:19:34 · 182 阅读 · 0 评论 -
顺序栈的基本操作/9/
栈1、栈是限定仅在表尾进行插入或者删除的操作2、栈又被称为后进先出的线性表3、顺序栈:栈的顺序存储结构,利用一组地址连续的存储单元依次存放,自栈底到栈顶的数据元素,同时依附指针top指示栈顶元素在顺序栈中的位置。初始化栈栈在使用过程中所需要的最大空间大小很难估计,所以在初始化时,不该定义一个最大容量。而是先分配一个合理容量,再依情况追加。头文件和宏定义#include<stdi...原创 2019-07-25 10:51:21 · 331 阅读 · 0 评论 -
循环队列-顺序表示和实现
循环队列1、顺序队列:使用一组地址连续的存储空间,依次存储。附设两个指针,分别指向队头和队尾2、循环队列:将顺序队列臆造为一个环状的空间性质队空条件:front == rear队满条件:(rear+1) %QueueSize == front队列长度:(rear—front + QueueSize) % QueueSize(1)队列初始化时,front和rear值都为零;(...原创 2019-07-27 20:52:49 · 625 阅读 · 0 评论 -
链式队列的基本操作
什么是队列1、先进先出的线性表2、只在队头删除3、在队尾插入什么是链式队列1、用链表表示的队列叫做链式队列2、两个分别指向队头和队尾的指针3、空的链队列的判断条件是队头和队尾指针同时指向头结点链式队列的存储结构typedef struct QNode { QElemType data; //队列元素 struct QNode *next; //指向下一个元素节点}QNod...原创 2019-07-26 11:39:17 · 1891 阅读 · 0 评论 -
字符串-堆分配基本操作
堆分配的存储特点1、依然是以一组地址连续的存储单元存放串值字符序列2、存储单元由动态分配存储结构typedef struct { char *ch;//字符指针 int Length;//字符长度}HString;初始化在这里,使用for (i = 0, c = chars; *c; c++, i++);这是一个单独的语句,没有代码块。相当于for (i = 0, c = ch...原创 2019-07-28 16:27:24 · 589 阅读 · 0 评论 -
二叉树的部分操作
树是什么树是n个节点的有限集(1)有且只有一个节点的称为根节点(2)当n>1时,其他节点可以分为m个不相交的有限集,并且称为根的子树度节点拥有的子树个数为该节点的度树的度为各结点中度最大的值叶子度为0的结点称为叶子结点/终端结点深度/高度树中结点的最大层次有序/无序树有序:有左右自分,有次序无序:反之二叉树是什么特点:1、每个节点至多只有两个子节点。2、二叉...原创 2019-08-04 08:45:13 · 200 阅读 · 0 评论 -
排序:选择/折半/快速/希尔/插入
数据存储#define ElemType inttypedef struct { ElemType *elem; int Length; int ListSize;}SqList;数据初始化下标为0的没有存储数据void InitList(SqList &L)//创建线性表函数{ L.elem = (ElemType*)malloc(100 * sizeof(Ele...原创 2019-08-05 08:28:54 · 128 阅读 · 0 评论 -
带头结点的双向循环链表/创建/删除/插入/查找
什么是双向循环链表1、拥有两个指针域prior以及next,一个数据域data2、尾部的next指针 指向头结点存储结构typedef struct DuLNode { ElemType data; struct DuLNode *prior; struct DuLNode *next;}DuLNode,*DuLinklist;带头结点双链循环表创建1、创建头结点2、在循环...原创 2019-07-24 14:22:21 · 2461 阅读 · 0 评论 -
顺序表删除数据
1、创建顺序表2、初始化顺序表3、构建逻辑宏定义和头文件:#include<stdio.h>#include<stdlib.h>#include<malloc.h>#define ElemType int#define Status int存储结构:typedef struct{ ElemType *elem; int Length; ...原创 2019-07-21 13:44:23 · 958 阅读 · 0 评论