![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
OnexTwo
君志所向,一往无前,愈挫愈勇,再接再厉。
展开
-
删除线性表中所有值为x的数据元素
长度为n的顺序表L,编写一个时间复杂度为O(n),空间复杂度为O(1)的算法,该算法删除线性表中所有值为x的数据元素。解法一:void del_x_l_1(Sqlist &L,int x){ int k=0; for(int i=0;i<L.length;i++){ if(L.data[i]!=x) L.data...原创 2019-12-29 20:49:48 · 2896 阅读 · 0 评论 -
排序算法之快速排序
最近复习了排序算法。仅在此略加笔记,以备后需。来日有时,再详细说明。#include <stdio.h>int partition(int L[],int low ,int high);int quickSort(int L[],int low ,int high);int main(void){ int L[18]={0,5,3,6,0,8,1,4,2,45,23,1...原创 2019-09-19 21:23:57 · 100 阅读 · 0 评论 -
后序非递归法遍历二叉树
理解的关键在于,建立栈,前序遍历第一次遇到就排出,中序遍历第二次遇到排出,后序遍历第三遇到排出,用c时注意指针的使用。具体思想:一直沿着左支树走到底,并且将经过的节点压入栈,到底时,拿出栈顶元素,判断一下子,是第几次遇到它,如果是第三次就排出,并且把遍历指针设为NULL,否则就取其右孩子继续这个操作。以下是我从c开始实现的栈,树,等结构及其基本操作。然后在此基础上实现这个算...原创 2019-05-26 19:01:01 · 295 阅读 · 0 评论 -
JAVA字符串反转几种方法比较。
更新 参考文章:https://blog.csdn.net/lily0806/article/details/45093329 Java中字符串反转还有2种方法是public static String reverse1(String str){ return new StringBuffer(str).reverse().toString();} publ...原创 2019-04-19 13:12:43 · 1007 阅读 · 0 评论 -
单链表逆转的2种方法。
单链表逆转方法有很多:这里谈两种:1.再建一个链表然后,边遍历原来的链表,便是用头插法,完成新的单链表,这样子虽然内存损耗比较大,但是也是勉强可以完成的。2.使用3个指针,逐个节点的逆转。p q两个指针分别指向想要逆转关系的两个节点,p指向前一个节点,q指向后一个节点r指向q后余下的链表。具体操作:这里我们忽略头节点,也是说连带头节点一起逆转。初始化操作:p...原创 2019-03-23 16:02:15 · 10648 阅读 · 1 评论 -
leetcode 8. 字符串转换整数 (atoi)
class Solution { public int myAtoi(String str) { long save = 0; int operator=0;//表示正,1表示负。 int i=0; str=str.trim(); if(str.equals("")) return 0; System.out.p...原创 2019-03-30 12:02:20 · 92 阅读 · 0 评论 -
leetcode.6. Z 字形变换
class Solution { public String convert(String s, int numRows) { int r=0; int t=0; char charArray[]=s.toCharArray(); if(numRows>1) { t=numRows-2+numRows;//...原创 2019-03-22 11:09:25 · 93 阅读 · 0 评论 -
leetcode 5. 最长回文子串
写这道题的时候,起初没有想法的。后来经过左思右想,想到了中心扩展的方法,结果只出来一种单中心的最长回文子串,然后又发现双中心没法在这样的方法里完成。苦恼了许久,看了答案的java代码恍然大悟,只要再写一种双中心的,比较单中心和双中心哪个长就好了。答案的java代码觉得写的很好值得学习。我自己写的是C的代码,附上经过修改的成功AC的C源码。int expandAroundCente...原创 2019-03-16 15:25:57 · 98 阅读 · 0 评论 -
leetcode -4寻找两个有序数组的中位数
#include <stdio.h>#include <stdlib.h>int Insert(int *num,int n,int *size1){ int i,j; for(i=0;i<*size1;i++){ printf("%d\n",num[i]); if(n<=num[i]){ ...原创 2019-03-08 14:17:41 · 117 阅读 · 0 评论 -
KMP算法详解(易理解)
前言:断断续续得学习KMP算法已经有些时间,每次看这个算法都会有更进一步得理解。至今,总算对整个KMP算法有了个完整的理解。简单模式匹配算法:KMP算法的产生是源于字符串模式匹配问题的。因为原始的朴素模式匹配算法太过粗糙,效率低所以才有科学家发明了KMP算法的。朴素的模式匹配算法流程:将模式的首位与主串首位比较如果相等则比较下一位,否则主串往后跳一位重新执行前面的操作。直到主串跳完或者模式...原创 2018-12-09 21:56:50 · 253 阅读 · 0 评论 -
八皇后问题---自己的想法
#include <stdio.h>int ceng=0;int number=0;int zong=0;typedef struct zuobiao{ int x; int y;};zuobiao b[5];int fun(int x,int y);int main(void){/*printf("(1,1)的搜索\n") ;fun(1,1);print...原创 2018-10-28 11:56:17 · 183 阅读 · 0 评论 -
数据结构 栈的实现 c语言
//栈的实现c语言#include <stdio.h>#include <stdlib.h>#define LISTSIZE 100#define LISTCREMENT 10#define OK 1#define ERROR 0typedef struct stack{ int *base; int *top; int stack_size;}st...原创 2018-09-11 19:52:27 · 165 阅读 · 0 评论 -
数据结构学习备忘录(持续更新)
概念性问题:①在链表中引入头结点可以使头指针永远不空。方便插入和删除运算的实现。②线性表采用链式存储时,结点和结点内部的存储空间必须是连续的。 有价值的代码:高效删除顺序表中值为e的所有元素的代码;void del(Sqlist *L,ElemType e){int i,k;i=0;while(i<L->length){if(L->...原创 2018-09-11 18:39:03 · 281 阅读 · 0 评论