数据结构
紫罗兰与海棠
热爱Coding
展开
-
队列(Queue)
概述队列是一个有序列表遵循先入先出的原则用数组模拟数据//使用数组模拟队列-编写一个ArrayQueue类class ArrayQueue { private int maxSize; // 表示数组的最大容量 private int front; //队列头 private int rear; //队列尾 private int[] arr; //该数据用于存放数据,模拟队列 //创建队列的构造器 public ArrayQueue(int原创 2021-08-06 15:21:29 · 115 阅读 · 0 评论 -
JAVA数组结构——稀疏数组
稀疏数组基本介绍当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存处理方法记录数组一共有几行几列,有几个不同的值把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模基本思路二维数组 转 稀疏数组的思路遍历原始的二维数组,得到有效的个数sum根据sum就可以创建稀疏数组sparseArr int[sum+1][3]将二维数组的有效数据存入到稀疏数组稀疏数组 转 二维数组的思路先读取稀疏数组的第一行,根据第一行的数据,创建原创 2021-07-25 09:18:25 · 100 阅读 · 2 评论 -
单向链表结点的删除
头删动头指针p = h;h = h->next;free(p);中间(尾)删待删结点的前驱结点有指针,两指针联动rp->next = delp->next;free(delp);注意若不能确定删头还是删中间(尾)结点时:两指针联动跑分情况讨论删除非空单向链表关键值为key的结点ElemSN* DelKeynode(ELemSN *h,int key){ ElemSN *p,*rp; for(p=h,p&&p->data-key原创 2021-06-09 11:44:19 · 328 阅读 · 0 评论 -
链表——就地逆置
思路旧链表头删,新链表头插。代码//将链表就地逆置#include<stdio.h>#include<malloc.h>typedef struct node{ int data; struct node* next;}ElemSN;ElemSN* creatLink(int a[],int n){ ElemSN* h = NULL; ElemSN* p; for(int i = n-1;i>-1;i--){ p = (ElemSN*)mallo原创 2021-06-09 11:19:59 · 159 阅读 · 0 评论 -
链表——找出最大值与最小值
找出单项链表中的最大值与最小值,同时返回#include<stdio.h>#include<malloc.h>typedef struct node{ int data; struct node* next;}ElemSN;ElemSN* CreatLink(int a[], int n){ ElemSN *h = NULL, *p; for (int i = n - 1; i > -1; i-- ) { p = (ElemSN*)malloc(size原创 2021-05-29 22:03:52 · 4431 阅读 · 0 评论 -
Train Problem I
As the new term comes, the Ignatius Train Station is very busy nowadays. A lot of student want to get back to school by train(because the trains in the Ignatius Train Station is the fastest all over the world v). But here comes a problem, there is only on.原创 2021-05-29 20:41:02 · 72 阅读 · 0 评论 -
单调栈
题目——Bad Hair DaySome of Farmer John’s N cows (1 ≤ N ≤ 80,000) are having a bad hair day! Since each cow is self-conscious about her messy hairstyle, FJ wants to count the number of other cows that can see the top of other cows’ heads.Each cow i has a spe原创 2021-05-19 21:01:57 · 48 阅读 · 0 评论