![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
雪碧柠七
这个作者很懒,什么都没留下…
展开
-
数据结构 顺序表的简单排列
初始化打印顺序表尾插一个元素只删除第一个指定元素删除所有指定元素判断顺序表是否为空 为空返回1 不为空返回0 冒泡排序#pragma once#include <stdio.h>#define SeqListMax 1000#define TITLE printf("\n==============%s==============\n",__FUNCTION__);typ...原创 2018-03-20 21:40:09 · 1436 阅读 · 0 评论 -
数据结构 共享栈(一个数组实现两个栈)
题目解析:代码:#include<stdio.h>#define Max_size 1000typedef char DataType;typedef struct shareStack{ DataType data[Max_size]; int top1; int top2;}shareStack;//初始化void shareStackInit(share...原创 2018-05-31 10:51:45 · 1850 阅读 · 1 评论 -
数据结构 判定字符串是否按照出栈顺序
判定字符串是否按照出栈顺序 代码中所引用头文件源自之前的一篇的完成顺序栈与链式栈博客。题目解析如下:代码如下:#include"seqstack.h"#include<stdio.h>int stackTrue(SeqStack* stack,char* input,char* output){ if(stack == NULL) { //非法输入 return ...原创 2018-05-30 16:20:30 · 306 阅读 · 0 评论 -
数据结构 二叉树的基本操作(求树的结点数,高度,叶子结点...)
以下代码所测试的树:根据先序遍历结果(带空结点),构造一棵树将树的先序遍历放入数组,空结点用*代替char arr[] = "abd**eg***c*f**";再然后,与递归前序遍历树的方法一样,只是将打印该结点换成创建结点即可。代码实现://根据先序遍历结果(带空结点),构造一棵树TreeNode* _TreeCreate(TreeDataType arr[],size_t size,int*...原创 2018-06-05 15:22:19 · 30791 阅读 · 2 评论 -
数据结构 两个队列实现一个栈
解题思路:Stack_by_2queue.h#pragma once#include<stdio.h>#include<stdlib.h>#define TITLE printf("\n========================%s==========================\n",__FUNCTION__);#define MaxSize 100...原创 2018-05-29 11:20:03 · 193 阅读 · 0 评论 -
数据结构 两个栈实现一个队列
解题思路:#pragma once#include<stdio.h>#include<stdlib.h>#define TITLE printf("\n=======================%s=========================\n",__FUNCTION__);typedef char DataType;typedef struct...原创 2018-05-28 13:37:42 · 295 阅读 · 0 评论 -
数据结构 单链表相关习题3
1.判定两个链表是否相交, 并求出交点解题思路: 两链表若相交,则其最后一个节点必定相同。所以遍历得出两链表的尾节点可得知两链表是否相交。 若两链表相交,则求出两链表长度,相减得其差值len。 较长链表先向后遍历len次,随后两链表同时向后遍历。直到出现两值相同时,该节点即为相交点。//判定两个链表是否相交, 并求出交点 LinkNode* HasCross(LinkNode*...原创 2018-05-22 19:59:35 · 251 阅读 · 0 评论 -
数据结构 实现一个栈:取栈中的最小值的时间复杂度为O(1)
解题思路: 每次入栈两个元素,一个为将要入栈的value元素,一个位min最小元素。 第一次入栈时,将该元素设为min值,入栈两次该元素。此后,每次入栈value都需和min值比较,若比min值小,则min数据更新为该值。若大于min,则min不变。 此后,先入栈value元素,后入栈min。这样就保证了栈顶元素始终为最小值min。下面上代码:#include"minStack....原创 2018-05-17 17:48:36 · 652 阅读 · 0 评论 -
数据结构 二叉树的基本操作(递归版本)
此处我们采用孩子表示法来完成遍历:typedef char TreeNodeType;typedef struct TreeNode{ TreeNodeType data; struct TreeNode* lchild; struct TreeNode* rchild;}TreeNode;首先我们先构造一棵树:先序遍历:ABDGHEICFJ中序遍历:GHDBIEAF...原创 2018-05-17 13:59:42 · 278 阅读 · 0 评论 -
数据结构 单链表相关习题2 (*包含求带环链表环的入口)
1.判断链表是否带环,带环返回1,不带换返回0//判断链表是否带环,带环返回1,不带换返回0int HasCycle(LinkNode* head){ if(head == NULL) { //空链表 return -1; } if(head->next == NULL) { return 0; } LinkNode* low = head; LinkNode...原创 2018-05-17 12:35:19 · 220 阅读 · 0 评论 -
数据结构 单链表相关习题练习
1.逆序打印单链表采用递归的方法即可实现。//逆序打印单链表void LinkListReversePrint(LinkNode* head){ if(head == NULL) { return; } LinkListReversePrint(head->next); printf("[%c] ",head->...原创 2018-05-10 21:24:17 · 6467 阅读 · 0 评论 -
数据结构 完成顺序栈,链式栈的基本操作
顺序栈的初始化 销毁 入栈 出栈 取栈顶元素 seqstack.h#pragma once#include <stdio.h>#define TITLE printf("\n==========================%s=========================\n",__FUNCTION__);typedef char SeqStackType;ty...原创 2018-04-11 22:59:17 · 1277 阅读 · 0 评论 -
数据结构 关于单链表的基本操作
以下是有关单链表增删查改的一些代码:linklist.h#include <stdio.h>#include <stdlib.h>#define TITLE printf("\n======================%s====================\n",__FUNCTION__);typedef char LinkType;typedef ...原创 2018-04-04 16:11:00 · 203 阅读 · 0 评论 -
数据结构 分别实现顺序队列和链式队列
分别实现顺序队列和链式队列实现入队列, 出队列, 和取队首元素顺序队列seqqueue.h#pragma once#include <stdio.h>#include <stdlib.h>#define TITLE printf("\n====================%s====================",__FUNCTION__);#de...原创 2018-04-15 16:36:04 · 438 阅读 · 0 评论 -
数据结构 双向链表的简单操作
以下是有关双向链表的一些简单操作,例如增删查改。link.h#pragma once#include <stdio.h>#define TITLE printf("\n========================%s======================\n",__FUNCTION__);typedef char DLinkType;typedef struc...原创 2018-04-08 20:37:49 · 165 阅读 · 0 评论 -
数据结构 二叉树的遍历(非递归),镜像,完全二叉树判定
先序遍历二叉树(非递归)//非递归前序遍历二叉树void PreOrderByLoop(TreeNode* root){ if(root == NULL) { //空树 return; } ListStack* stack; ListStackInit(&stack); //将根结点入栈 ...原创 2018-06-14 20:16:47 · 357 阅读 · 0 评论