一、自我介绍一下
一个来自江西的民办二本已经摆烂了两年的大二学生,在某一天突然开窍想要做出改变,于是在网上找了些视频学习,一开始还是没有那么自律的去做,但经过反复折腾到现在还是习惯了起来。
最开始接触的是c语言,于是在三个月的反复折磨后,现在也是成功坚持到了C语言的数据结构。
以下是最近刚学到的地方,写的一个共享栈(就当作一般CSDN文章里的代码,水一下)
#include<stdio.h>
#define Status int
#define OK 1
#define ERROR 0
#define MAXSIZE 50
typedef int ElemType;
typedef struct {
ElemType data[MAXSIZE];
int top0;
int top1;
}SqDstack;
void InitStack(SqDstack *s) {
s->top0 = -1;
s->top1 = MAXSIZE;
}
Status Push(SqDstack* s, ElemType e, int stackNumber) {
if (s->top0 + 1 == s->top1) {
printf("栈满");
return ERROR;
}
if (stackNumber == 0) {
s->data[++s->top0] = e;
}
else if (stackNumber == 1) {
s->data[--s->top1] = e;
}
return OK;
}
Status Pop(SqDstack* s, ElemType* e, int stackNumber,int n) {
if (stackNumber == 0) {
if (s->top0 == -1) {
return ERROR;
}
*e = s->data[s->top0--];
}
else if (stackNumber == 1) {
if (s->top1 == MAXSIZE) {
return ERROR;
}
*e = s->data[s->top1++];
}
return OK;
}
Status Gettop(SqDstack *s,int stackNumber,int n) {
if (stackNumber == 1) {
if (s->top1 == MAXSIZE) {
printf("栈为空");
return ERROR;
}
while (s->top1 != MAXSIZE)
printf("%d->", s->data[s->top1++]);
}
if (stackNumber == 0) {
if (s->top0 == -1) {
printf("栈为空");
return ERROR;
}
while(s->top0 != -1)
printf("%d->", s->data[s->top0--]);
}
return OK;
}
int main(void) {
SqDstack s;
int n, i,m;
printf("请输入数的个数");
scanf("%d", &n);
InitStack(&s, n);
for (i = 0; i < n; i++) {
Push(&s, i, 0);
Push(&s, n-i, 1);
}
printf("请输入需要查看的栈(1or0):");
scanf("%d", &m);
Gettop(&s,m,n);
}
二、接下来的目标
还是打算接下来把数据结构以及C++给学完学懂,迫于专业的压力,还得抽出时间学完python,当然现在的学习意愿还是比较高。
对于几年后的自己,现在也没啥概念,还是得等自己的能力上来再看看吧(我现在还是菜鸡)。
三、自己当下如何学习编程
学习的心态还是比较重要,切骄切躁。个人感觉目前编程对于一部分内容的知识体系建设还是挺重要的,以及要多做一些例题,在早时候时常出现编程题下不了手,能看懂别人的代码,但是自己却写不出来。
用自己的闲暇时间在草稿纸上写写也挺好的。
四、总结
编程的学习路上还是得持之以恒,多想多做。希望当我又开始变懒或者又开摆的时候,能看到我今天写的这些东西有点感悟吧。
最后小写一下
#include<stdio.h>
int main() {
char bai;
do{
printf("你今天还摆烂吗?(Y or N)\n");
scanf("%c", &bai);
if (getchar() != '\n')
return ' ';
if (bai == 'N') {
printf("冲!\n");
return 0;
}
printf("不许摆烂!\n");
} while (1);
}