数据结构
疯狂的小强呀
这个作者很懒,什么都没留下…
展开
-
PTA之双端队列
题目描述双端队列(deque,即double-ended queue的缩写)是一种具有队列和栈性质的数据结构,即可以(也只能)在线性表的两端进行插入和删除。若以顺序存储方式实现双端队列,请编写例程实现下列操作:Push(X,D):将元素X插入到双端队列D的头;Pop(D):删除双端队列D的头元素,并返回;Inject(X,D):将元素X插入到双端队列D的尾部;Eject(D):删除双端队列D的尾部元素,并返回。//函数接口定义:bool Push( ElementType X, Deque D原创 2021-04-16 21:54:52 · 2508 阅读 · 0 评论 -
另类循环队列之C语言实现
题目描述如果用一个循环数组表示队列,并且只设队列头指针Front,不设尾指针Rear,而是另设Count记录队列中元素个数。请编写算法实现队列的入队和出队操作。函数接口定义:bool AddQ( Queue Q, ElementType X );ElementType DeleteQ( Queue Q );其中Queue结构定义如下:typedef int Position;typedef struct QNode *PtrToQNode;struct QNode { Elemen原创 2021-04-02 16:14:23 · 343 阅读 · 0 评论 -
无重复字符的最长子串之C语言实现
题目描述代码实现:#include<stdio.h>#include<stdlib.h>#include<string.h>int lengthOfLongestSubstring(char * s);///计算无重复最大子串长度int main(){ char str[100]; scanf("%s",&str); printf("最大子串长度为:%d",lengthOfLongestSubstring(str));原创 2021-03-31 20:53:54 · 1002 阅读 · 0 评论 -
两个有序链表的合并之C语言实现
题目描述本题要求实现一个函数,将两个链表表示的递增整数序列合并为一个非递减的整数序列。//函数接口定义:List Merge( List L1, List L2 );//其中List结构定义如下:typedef struct Node *PtrToNode;struct Node { ElementType Data; /* 存储结点数据 */ PtrToNode Next; /* 指向下一个结点的指针 */};typedef PtrToNode List; /* 定义原创 2021-03-31 17:58:57 · 7404 阅读 · 0 评论 -
单链表逆转(PTA)之C语言实现
题目描述本题要求实现一个函数,将给定的单链表逆转。//函数接口定义:List Reverse( List L );//其中List结构定义如下:typedef struct Node *PtrToNode;struct Node { ElementType Data; /* 存储结点数据 */ PtrToNode Next; /* 指向下一个结点的指针 */};typedef PtrToNode List; /* 定义单链表类型 */L是给定单链表,函数Revers原创 2021-03-28 13:46:04 · 2109 阅读 · 0 评论 -
递增的整数序列链表的插入(PTA)之C语言实现
题目描述本题要求实现一个函数,在递增的整数序列链表(带头结点)中插入一个新整数,并保持该序列的有序性。//函数接口定义:List Insert( List L, ElementType X );//其中List结构定义如下:typedef struct Node *PtrToNode;struct Node { ElementType Data; /* 存储结点数据 */ PtrToNode Next; /* 指向下一个结点的指针 */};typedef PtrToNo原创 2021-03-27 17:12:54 · 685 阅读 · 0 评论 -
有序数组的插入(PTA)之C语言实现
题目描述本题要求将任一给定元素插入从大到小排好序的数组中合适的位置,以保持结果依然有序。/*函数接口定义:*/bool Insert( List L, ElementType X );/*其中List结构定义如下:*/typedef int Position;typedef struct LNode *List;struct LNode { ElementType Data[MAXSIZE]; Position Last; /* 保存线性表中最后一个元素的位置 */};原创 2021-03-27 16:14:22 · 1955 阅读 · 2 评论 -
数据结构的基本概念
数据结构的基本概念相关术语数据结构数据类型抽象数据类型相关术语数据: 是客观事物的符号表示,是所有能输入到计算机中并被计算机程序处理的符号数据元素: 是数据的基本单位,在计算机中通常作为一个整体进行考虑,比如一个学生的记录数据项: 是组成数据元素的、有独立含义的、不可分割的最小单位,例如学生信息表中的学号、姓名、性别等都是数据项数据对象: 是性质相同的数据元素的集合,是数据的一个子集数据结构定义:是相互之间一种或多种特定关系的数据元素的集合数据结构包括逻辑结构和存储结构两个集合逻辑结原创 2020-09-21 16:35:26 · 155 阅读 · 0 评论 -
codeblocks的下载、安装与创建
下载下载地址:官网进入主界面,点击Downloads进入Downloads界面,我们一般都会选择第一个Download the binary release(下载二进制版本),或者点击Binaries进入二进制版本下载界面,会出现多个版本,我们一般选择自带编译器的版本安装...原创 2020-04-11 23:03:41 · 696 阅读 · 3 评论 -
二分查找之C语言实现
二分查找理解二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。算法分析假设给出一段顺序存储的递增数据,将要查找的数据与该段数据中间位置的数据进行比较,如果刚好等于则返回中间位置的下标,如果大于则重复上述操作比较后半段数据,如果小于则重复上述操作比较前半段数据,直至中间位置查找完毕。算...原创 2020-03-27 20:46:00 · 214 阅读 · 0 评论 -
数据结构之用堆栈判断回文
回文判断回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。编写一个程序,使用栈判定给定的字符序列是否为回文。输入格式:输入待判断的字符序列,按回车键结束,字符序列长度<20。输出格式:若字符序列是回文,输出“YES”;否则,输出“NO”。输入样例:abdba解题思路首先,我们要明白堆栈是具有一定操作约束的线性表,它的特点是只能...原创 2020-03-19 08:55:17 · 4007 阅读 · 1 评论