数据结构
KOKO银角大王
KOKO
展开
-
JAVA中不使用LinkedList来创造一个顺序表
不使用LinkedList而是使用泛型来创造一个顺序表:public class MainClass<T> { private static class Node<U> { U item ; Node<U> next ; Node() { item = null ; next = null ; } Node(U item , Node<U> next) { this.item = item ; this.next原创 2020-05-27 21:43:47 · 217 阅读 · 0 评论 -
稀疏矩阵的压缩存储原理
稀疏矩阵的压缩存储原理:三元组顺序表#define MAXSIZE 12500 //非零元个数最大值 typedef struct { int i,j;//该非零元的上标和下标 ElemType e;//非零元 }Triple;typedef struct { Triple data[MAXSIZE+1];//非零元三元组表,data[0]未用 int mu,nu,tu;//矩阵的行数列数和非零元的个数 }TSMatrix; ...原创 2020-05-24 20:11:36 · 309 阅读 · 0 评论 -
数据结构的串的块链表示的C语言表示
字符串比较常见的三种表示方法是顺序存储,堆存储以及块链存储。块链存储时用的最少的,它的结构:#define CHUNKSIZE 80//块的大小,需要自定义typedef struct Chunk{ char ch[CHUNKSIZE]; struct Chunk *next;}Chunk,*Chunkp;typedef struct { Chunk *head,*tail; int cutlength;}LString;我们可以自定义每一个块的大小,再把每一个块按照顺序链接起来原创 2020-05-24 16:32:59 · 430 阅读 · 0 评论 -
数据结构中串的C语言实现--堆分配存储表示(部分方法)
数据结构中串(字符串)的堆分配存储表示:结构体:typedef struct { char *ch; int length;}HString;ch用来存储申请的空间首地址,length用来存储申请到的地址大小即字符串的长度。字符串的初始化函数:Status StrAssign(HString *t,char *chars){ char *c=chars; int i; for(i=0,c;*c;++i,++c);//*c可以替换为*c!='\0' if(!i){ t->c原创 2020-05-24 16:20:13 · 1044 阅读 · 0 评论 -
数据结构队列的顺序实现--循环队列
数据结构中队列的顺序实现,即循环队列的C语言实现。为了简化,这里的顺序队列存储的元素是基本数据类型int型。SqQueue结构体:typedef struct { int *base; int front; int rear;}SqQueue;其中base存储申请(malloc)到的地址空间的首地址。front和rear是两个整型变量,front的值为队头的下标,rear的值为队尾的...原创 2020-05-02 11:21:41 · 658 阅读 · 0 评论 -
数据结构的链式队列实现,数据元素为字符数组
链式队列的C语言实现,数据元素为字符串。#include<stdio.h>#include<stdlib.h>#include<string.h>#define ERROR 0#define OK 1typedef int Status;typedef struct QNode{ char data[20]; struct QNode *n...原创 2020-05-01 12:12:56 · 356 阅读 · 0 评论 -
数据结构链式队列的C语言实现
队列是区别与栈的一种线性表。栈的核心是LIFO,即后进先出,栈最常用的是顺序实现,用一片连续 的地址存储栈。而队列是一种FIFO也就是先进先出的线性表,一个队列有且仅有一个队头和一个队尾,元素只能由队尾进入,从队头排出。而队列比较常用的是链式结构实现的队列。我们可以想一想为什么链式比顺序结构更加适合于队列。原因就在于队列是先进先出,而顺序实现申请到的地址是返回首元素地址的(malloc函数)这个首...原创 2020-05-01 00:32:37 · 424 阅读 · 0 评论 -
利用顺序栈走迷宫--数据结构栈的使用例题
从迷宫的入口走到迷宫的出口,一直是一个经典的程序设计问题。这里也是采用最简单的“穷举法”。即从入口处发顺着没有方向向前前进,若能走通则继续前进,否则换一个方向,所有方向都都走不通(不允许往来时的位置走,否则就会走两个各自间无限死循环)就退回到上一个格子,换方向继续尝试,直到走到出口,或者所有的地方都走到了仍然没有出口,表示此迷宫无解。思路:使用一个二维数组存储地图,以0表示不可走的墙体,1表示可...原创 2020-04-29 21:42:14 · 885 阅读 · 0 评论 -
数据结构含编辑程序
行编辑程序都是需要带有缓冲区功能的,如果没有缓冲区的化,用户的输入要求将是严格的,没有机会修改错误的输入数据。C语言中的scanf函数输入字符串或者是嵌套在循环里面的getchar函数都是可以看出来来C语言在我们输入数据的时候是有缓冲的区。为了理解缓冲区的工作原理,我们可以用一个字符栈来模拟缓冲区的运行过程:首先,我们需要一个字符栈:#include<stdio.h>#inclu...原创 2020-04-29 17:26:48 · 154 阅读 · 0 评论 -
数据结构--括号匹配检验(数据结构习题)
《数据结构》严蔚敏版习题3.2.2,括号匹配问题。是顺序栈的课后习题。原问题:假设表达式中允许包括两种括号:圆括号和方括号,其嵌套方式随意,即(【】())等都是正确的格式,【(】)是不正确的格式。设计一个算法检查输入的字符串中的括号是否是匹配的。/-------------------------------------------------------------/思路:使用栈来解决,遇到...原创 2020-04-29 15:12:29 · 9017 阅读 · 2 评论 -
数据结构顺序栈实现(数据元素是字符数组)
C语言实现顺序栈,其中的数据元素是字符数组。#include<stdio.h>#include<stdlib.h>#include<string.h>#define SIZE 100#define INCR 10#define ERROR 0#define OK 1typedef int Status;typedef struct { ch...原创 2020-04-29 10:51:44 · 596 阅读 · 0 评论 -
数据结构顺序栈的实现(数据元素设置为int)
用C语言实现顺序栈#include<stdio.h>#include<stdlib.h>#define ERROR 0#define OK 1typedef int Status; typedef struct { int *base; int *top; int size;}SqStack;int main(){ Status InitSta...原创 2020-04-29 10:01:15 · 406 阅读 · 0 评论 -
《数据结构》线性表的静态链表实现
数据结构中的线性表指的是在逻辑上连续呈现出线性的一组数据元素。它的实际实现方法根据存储结构的不同可以分为顺序实现、链式实现、静态链式实现。这里介绍不常见的静态链表实现。它的存储结构主要依赖于数组,也就是说不同于顺序实现和链式实现,它的链表长度的不可变化的。存储结构逻辑图如下:规定了这个无名结构体也可以被叫做com型变量,100的这个变量组成的数据被称作SList变量。上图给出了一个实例,这个数...原创 2020-04-27 20:44:06 · 357 阅读 · 0 评论 -
数据结构中的线性表的链式实现(数据元素是字符串)
数据结构中的线性表的链式实现(数据元素是字符串),新手向,大佬就别看了,浪费时间。#include<stdio.h>#include<stdlib.h>#include<string.h>#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0typedef int Status;ty...原创 2020-04-26 16:03:54 · 511 阅读 · 0 评论 -
线性表的链式实现C语言代码(新手向,大佬别浪费时间看了)
针对数据结构中的链表,用C语言实现所有函数的代码。说实话,我感觉数据结构的教材都是采用伪代码,有的函数连伪代码也没提供,对初学数据结构的小白实在不是很友好。希望这些代码能给初学者带来方便。#include<stdio.h>#include<stdlib.h>//线性表的链式实现中,每一个数据元素都存在结构体节点中,每一个节点结构体需要包含数据域和指针域两个部分//...原创 2020-04-22 17:29:38 · 333 阅读 · 0 评论 -
数据结构线性表的顺序实现所有方法(数据元素为int)--数据结构C语言版严蔚敏2.2
数据结构线性表的顺序实现所有方法(数据元素为int)–数据结构C语言版严蔚敏.章节2.2:#include<stdio.h>#include<stdlib.h>typedef struct { int *elem; int length; int size;}Sqlist;int main(){ int compare(int ,int );//比较两...原创 2020-04-20 20:09:55 · 178 阅读 · 0 评论 -
线性表的顺序实现(数据元素是字符数组)&&字符数组名和指向它的指针区别详解
数据结构中线性表的顺序实现,这次的数据元素是字符数组,在这个例子中,好好体会了char * 和字符数组名的区别:char *name;那么name是一个字符指针变量,注意它是一个变量,是可以进行四则运算的,它的值是可以改变的。所以:printf("%s",name+20);没有问题。但是如果是 char name[20];那么name是一个地址常量,值是一个字符串的首地址,注意它是常量,是...原创 2020-04-20 15:22:34 · 275 阅读 · 0 评论 -
线性表的顺序实现(数据元素为int)
数据结构中的线性表的顺序实现,为了简化,数据元素是int:#include<stdio.h>#include<stdlib.h>typedef struct { int *elem; int length; int size;}Sqlist;int main(){ int InitSqlist(Sqlist *); int ListInsert(Sq...原创 2020-04-20 14:35:48 · 220 阅读 · 0 评论