
数据结构与算法
旋风冲锋龙卷风_
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
编写算法,检查一个程序中的花括号, 方括号和圆括号是否配对,若全部配对, 则返回1,否则返回0。 对于程序中出现的一对单引号或 双引号内的字符不进行括号匹配检查。
#include <stdio.h> typedef struct stack { }; void push(stack& s, char ch) { } void pop(stack& s, char ch) { } void getTop(stack s, char& ch) { } int isEmpty(stack s) { return 1;...原创 2020-03-26 16:35:45 · 2648 阅读 · 1 评论 -
用不带头结点的链表存储链栈,设计初始化链栈、判断栈是否为空、进栈和出栈等相应的算法
#include <stdio.h> #include <malloc.h> typedef int elem; typedef struct LNode { elem data; struct LNode* next; }LNode; void initialStack(LNode*& L) { L = NULL; } int isEmpty(LNod...原创 2020-03-22 10:33:11 · 1437 阅读 · 0 评论 -
Run-Time Check Failure #2 - Stack around the variable 'xxxx' was corrupted.
这个错误是数组变量xxxx下标越界所造成的, 使用下面这类循环时,不要忘记在数组结尾加’\0’ for (i = 0; exp[i] != '\0'; ++i){ //... } while(exp[i] != '\0'){ //... ++i; } ...原创 2020-03-22 10:12:49 · 117 阅读 · 0 评论 -
将单链表A分解成两个单链表A和B,A只含有原链表的data域为奇数的结点,B只含有data为偶数的结点,且保持原来的相对顺序。
算法描述: 用指针p扫描A链表,发现data为偶数时取下并插入B链表中。要求保持原来的序列,则采用尾插法建立B链表。 void divide(LNode* A, LNode *&B) { LNode* p, * q, * r; B = (LNode*)malloc(sizeof(LNode)); B->next = NULL; r = B; p = A; while (p...原创 2020-03-20 10:09:20 · 1310 阅读 · 0 评论 -
单链表逆置,且不建立新结点,只通过已有结点重新组合完成
算法思想: 要使单链表逆置,首先应该想到使用头插法,但是要求不建立新结点,可以将L中的元素作为插入对象,将L->next置空,再将元素采用头插法逐个插入到L中。 void reverse(LNode* L) { LNode* p = L->next; LNode* q; L->next = NULL; while (p) { q = p->next;//q用来记...原创 2020-03-20 10:01:33 · 639 阅读 · 0 评论 -
C实现数组循环左移算法
void rotateP(int a[], int n, int p){ int i, j, temp; for(i = 0; i < p; i++){ temp = a[0]; for(j = 0; j<n-1; j++){ a[j] = a[j+1]; } a[n-1] = temp; } } int main() { int a[6] = { 1,...原创 2020-03-18 09:49:01 · 793 阅读 · 0 评论