数据结构
香菜对菠菜说生菜爱吃花菜
这个作者很懒,什么都没留下…
展开
-
链表
链表的概念: 链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针连接次序实现的。#include<stdio.h>#include<malloc.h>#include<assert.h>typedef int SlistDataType ;//定义链表中的节点的结构体typedef s...原创 2019-08-05 10:06:50 · 124 阅读 · 0 评论 -
leetcode232:用栈实现队列
使用栈实现队列的下列操作: push(x) -- 将一个元素放入队列的尾部。 pop() -- 从队列首部移除元素。 peek() -- 返回队列首部的元素。 empty() -- 返回队列是否为空。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/implement-queue-using-stacks...原创 2019-08-06 21:46:14 · 203 阅读 · 0 评论 -
leetcode225:用队列实现栈
使用队列实现栈的下列操作: push(x) -- 元素 x 入栈 pop() -- 移除栈顶元素 top() -- 获取栈顶元素 empty() -- 返回栈是否为空注意: 你只能使用队列的基本操作-- 也就是 push to back, peek/pop from front, size, 和 is empty 这些操作是合法的。 你...原创 2019-08-06 21:46:32 · 180 阅读 · 0 评论 -
leetcode20:有效的括号(c语言和c++两种解法)
方法一:C语言bool isValid(char* s) { char a[100000] = { 0 }; int count = 0; while(*s) { switch(*s) { case '{': case '[': case '(':...原创 2019-08-06 21:46:02 · 391 阅读 · 0 评论 -
栈、队列
栈: 先进后出#include<stdio.h>typedef struct Stack { int array[100]; int size;} Stack;//初始化void StackInit(Stack* s){ s->size = 0;}//销毁void StackDestroy(Stack* s){ s-&...原创 2019-08-05 15:18:04 · 118 阅读 · 0 评论 -
leetcode141环形链表
给定一个链表,判断链表中是否有环。/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; *///快慢指针bool hasCycle(struct ListNode *head) { struct Lis...原创 2019-08-05 14:08:28 · 128 阅读 · 0 评论 -
leetcode160相交链表
编写一个程序,找到两个单链表相交的起始节点。/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */int getlen(struct ListNode *head){ int l = 0; ...原创 2019-08-05 13:57:36 · 110 阅读 · 0 评论 -
牛客网:删除链表中重复节点
题目描述在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5class Solution {public: ListNode* deleteDuplication(ListNode* pHead) { ...原创 2019-08-05 12:43:50 · 183 阅读 · 0 评论 -
leetcode21. 合并两个有序链表
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/merge-two-sorted-lists...原创 2019-08-05 12:16:06 · 114 阅读 · 0 评论 -
牛客网 输入一个链表,输出倒数第k个节点
/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) { ...原创 2019-08-05 11:45:25 · 166 阅读 · 0 评论 -
leetcode第203题用C语言移除链表元素
删除链表中等于给定值val的所有节点。方法一: 递归法/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */struct ListNode* removeElements(struct ListN...原创 2019-08-05 11:26:37 · 240 阅读 · 0 评论 -
顺序表的创建、增、删、查、改、打印、销毁
#include<stdio.h>#include<assert.h>#include<malloc.h>#include<stdlib.h>typedef int SLDataType;//可更改方便数据类型的动态数据表//静态顺序表typedef struct SeqList1 { int array[100]; //容量...原创 2019-08-05 09:14:34 · 147 阅读 · 0 评论 -
leetcode第206题,C语言反转单链表题
方法一:三指针反转法/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */struct ListNode* reverseList(struct ListNode* head) { struct Li...原创 2019-08-05 10:44:23 · 218 阅读 · 0 评论 -
leetcode155:最小栈
设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。//使用两个栈class MinStack {public: stack<int> q; stack<int> min; /** initialize your data structure here. */ MinStack() { ...原创 2019-08-06 21:46:51 · 120 阅读 · 0 评论