数据结构
Wadli
热衷于书写bug
展开
-
【LeetCode】栈的应用
LeetCode原创 2022-06-29 11:51:59 · 230 阅读 · 1 评论 -
【LeetCode刷题】迭代限制条件
···前言本题用迭代 即可写出但关键在于迭代的条件 如果不加以注意会出现野指针的问题·······Solution若next=cur->next出现在这里 错误但只要把其移步到上面 ,即可用 cur的限制 来限制 next,很多题都需要用到这样的技巧...原创 2022-06-28 17:29:20 · 161 阅读 · 0 评论 -
【C语言内功】->与.的区别
->叫做结构体指针运算符,也是用来访问结构体内部成员的。换种说法,如果我们在C语言中定义了一个结构体,然后声明一个指针指向这个结构体,那么我们要用指针取出结构体中的数据,就要用到“->”.举个例子:因为此处p 是一个指针,所以不能使用.号访问内部成员(即不能p.a),而要使用->。但是A.a是可以的,因为A不是指针,是结构体名。一般情况下用“.”只需要声明一个结构体。格式是:结构体类型名+结构体名。然后用结构体名加“.”加成员名就可以引用成员了。因为自动分配了结构体的内存。如同 int a;一样。用“-转载 2022-06-28 17:12:40 · 170 阅读 · 0 评论 -
【c语言内功】链表中指针的指向
····前言本身并不是一个难题, 但记得以前经常因为这个问题一直困扰,so mark 一下···Solution仔细想了一下,以前是死板的把h->next固执的当作h的下一个Node,所以一直导致理解会很混乱。q=h->next ,那么h->next=q->next 不就等价为q=q->next ,一塌糊涂的逻辑。·而现在 h->next 应该是h所指向的结点中的指针域(指向下一个结点的指针)。q是指针应该是用来存放地址的,q=h->next 应该是把h的指向下一个结点的地址 赋原创 2022-06-28 16:31:50 · 1614 阅读 · 0 评论 -
【C语言内功】 LInkList &L的辨析
·原创 2022-06-27 20:41:29 · 2866 阅读 · 2 评论 -
【数据结构】顺序表的静态分配
SqList.h#include<stdio.h>#include<stdbool.h>#define MaxSize 10//顺序表的实现--静态分配typedef struct SqList{ int data[MaxSize]; int size;}SqList;void SqListInit(SqList* ps);void SqListPrint(SqList s);void SqListInsert(SqList* s,int i,int e原创 2022-03-18 23:35:59 · 358 阅读 · 0 评论 -
【数据结构】插入排序
InsertSort.h#pragma once#include<stdio.h>//直接插入排序void InsertSort_1(int* ar, int left, int right);void InsertSort_2(int* ar, int left, int right);void BinInsertSort(int* ar, int left, int right);void ShellSort(int* ar, int n);void PrintArray(原创 2022-03-13 13:48:46 · 1802 阅读 · 0 评论 -
【数据结构】链式队列
LinkQueue.h#pragma once#include<stdio.h>#include<stdlib.h>#include<assert.h>#include<stdbool.h>typedef int ElemType;typedef struct LinkQueueNode{ ElemType data; struct LinkQueueNode* next;}LinkQueueNode;typedef struct原创 2022-03-04 15:00:03 · 656 阅读 · 0 评论 -
【数据结构】链栈
LinkStack.h#pragma once#include<stdio.h>#include<assert.h>#include<stdbool.h>#include<stdlib.h>typedef int ElemType;//链栈typedef struct LinkStackNode{ struct LinkStackNode* link; ElemType data;}LinkStackNode;void Lin原创 2022-03-04 10:26:11 · 263 阅读 · 0 评论 -
【数据结构】顺序栈
SeqStack.h#pragma once#include<stdio.h>#include<assert.h>#include<stdbool.h>#include<stdlib.h>#define STACK_DEFAULT_SIZE 8typedef int ElemType;typedef struct SeqStack{ ElemType* base; //栈空间 ElemType capacity; int原创 2022-03-04 09:50:16 · 585 阅读 · 0 评论 -
【数据结构】带头结点双向循环链表
List.h#pragma once#include<stdio.h>#include<stdlib.h>#include<assert.h>typedef int LTDataType;typedef struct ListNode{ LTDataType data; struct ListNode* prev; struct ListNode* next;}ListNode;void ListPushBack(ListNode** pph原创 2022-03-03 21:20:32 · 500 阅读 · 0 评论 -
【数据结构】顺序表的动态存储
SeqList.h#include"SList.h"void TestSList(){ //SListNode phead;//直接定义一个头节点? //此时只需要一个指针即可,不需要结点!!!! SListNode* pList = NULL;//因为头指针只有指针域没有数据域,这里只需要一个指针变量即可 SListPrint(pList); SListPushBack(&pList, 1); SListPushBack(&pList, 1); SListPushB原创 2022-03-03 20:39:05 · 275 阅读 · 0 评论 -
【数据结构】不带头结点单向不循环链表
SList.h#include<assert.h>typedef int SListDataType;//s=single 单链表节点的定义typedef struct SListNode{ SListDataType data; //数据域 struct SListNode* next; //指针域}SListNode;SListNode* SListCreateNode(SListDataType n);void SListPushBack(SListNode原创 2022-03-03 20:17:47 · 195 阅读 · 0 评论 -
【数据结构】 链表面试题
链表面试题...删除链表中等于给定值 val 的所有节点。 OJ链接反转一个单链表。 OJ链接给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个OJ链接中间结点。输入一个链表,输出该链表中倒数第k个结点。 OJ链接将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成OJ链接编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前 。OJ链接链原创 2022-02-25 23:11:07 · 271 阅读 · 0 评论 -
【数据结构】数组试题
数组相关面试题原地移除数组中所有的元素val,要求时间复杂度为O(N),空间复杂度为O(1)。OJ链接删除排序数组中的重复项。OJ链接合并两个有序数组。OJ链接旋转数组。OJ链接数组形式的整数加法。OJ链接...原创 2022-02-21 23:12:07 · 194 阅读 · 0 评论