数据结构
数据结构 C
wangs7_
努力学习!
展开
-
数据结构C语言——简单二叉树的实现
4 树深度:层数。度:子树的数量。叶子:没有子节点的节点。4.1 二叉树定义:每个节点至多有两个子节点,且需要区分左孩子和右孩子。满二叉树:深度为 kkk 节点数量为 2k−12^k-12k−1 的二叉树。完全二叉树:只有最后两层的节点可以不满,且只有一个子节点的节点,其子节点必为左孩子的二叉树。4.1.1 二叉树的顺序存储/* * 二叉树 如下 * A * B C * D E F G * H …… …… …… …… …… …原创 2020-05-11 09:29:02 · 332 阅读 · 0 评论 -
数据结构C语言——队列的实现(数组、链表)
3 队列队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。队列的数据元素又称为队列元素。在队列中插入一个队列元素称为入队,从队列中删除一个队列元素称为出队。因为队列只允许在一端插入,在另一端删除,所以只有最...原创 2020-04-28 11:09:56 · 1134 阅读 · 2 评论 -
数据结构C语言——栈的实现(顺序、链式结构)
2 栈栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾(或表头)进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。栈是只允许在同一端进行插入和删除操作的特殊线性表。允许进行插...原创 2020-04-24 19:23:47 · 396 阅读 · 0 评论 -
C语言的面向对象的封装方法
1.3.2 面向对象的封装方法在封装C的函数时可以采用面向对象的封装方法,将结构体类化,以实现对用户隐藏函数的效果。集体方法如下:在结构体中定义一组对应方法的函数指针,将需要隐藏的函数方法声明转移到.c文件中并在结构体的初始化过程中添加对应函数指针的赋值操作,用户使用方法时仅需要使用 结构体指针->函数指针(参数表) 的方法即可实现对函数的调用。以上文数据结构C语言——双向链表及其...原创 2020-04-22 10:26:38 · 887 阅读 · 0 评论 -
数据结构C语言——双向链表及其实现
双向链表双向环链(非环连只需将尾部与头节点断开即可)组成:每个节点主要包含三个部分,数据域、前驱指针、后继指针。分类:带头结点的和无头结点的。带头结点的双向环链实现目的,写一个针对不同数据的双向的库。链表指针操作小贴士:假设链表节点内有三部分组成,数据域,前驱指针,后继指针三部分,现在在双向链表中有A、B两个相邻的节点,即A的后继指向B,B的前驱指向A。此时要在AB中插入节点...原创 2020-04-21 20:58:06 · 317 阅读 · 0 评论 -
数据结构C语言——单向链表及其实现
数据结构C语言——单向链表enmmmm暂时只有有头单链表的实现,后边无头的以后会更新qwq。悄悄告诉你,之前因为Linux环境没配好,代码可能有忆点bug,嘻嘻,不过框架没得问题。有头单链表:头节点不存储有效数据,便于对链表操作。(Linux环境没配好,代码没测可能有亿点bug)makefileall:mainmain:main.o list.o $(CC) $^ -o $@...原创 2020-04-19 23:56:11 · 284 阅读 · 0 评论 -
数据结构 C 实现 —— 顺序表及其实现
数据结构 C – 顺序表简介顺序表在物理结构上表现为连续的内存地址,建立顺序表是一次申请固定大小的连续内存,另外需要一个整型数据指示表内最后一个元素的下标,由于顺序表的存储特点,顺序表表现为一下特点:优点:快速查找修改指定位置的元素,由于顺序结构能够通过下标定位元素地址,故能通过下标快速读取数据地址;缺点:同样由于存储结构的特性,决定了顺序表的插入和删除需要移动大量元素(删除需要将后边的...原创 2020-04-18 20:45:01 · 170 阅读 · 0 评论