学习日志 姓名:顾迎星 日期:2018 9.4
一.今日学习任务:数组结构和算法,栈(先进后出)
二.今日任务完成情况
#include "stack.h"
#include <stdio.h>
int main()
{
int ret,i;
Stack s;
ret = InitStack(&s);
if (ret = SUCCESS)
{
printf("Init Success!\n");
}
else
{
printf("Init Failure!\n");
}
ret = EmptyStack(s);
if (ret == SUCCESS)
{
printf("stack is empty!\n");
}
else
{
printf("stack is not empty!\n");
}
for (i=0;i<11;i++)
{
ret = push(&s,i+1);
if (ret == SUCCESS)
{
printf("push %d success!\n",i+1);
}
else
{
printf("push %d failure!\n",i+1);
}
}
ret = GetTop(s); //huoquzhandingyuansu
if(ret == FAILURE)
{
printf("Get Top Failure!\n");
}
else
{
printf("Top is %d\n",ret);
}
for (i =0;i<5;i++)
{
ret = pop(&s);
if(ret == FAILURE)
{
printf("pop %d failure!\n");
}
else
{
printf("pop %d success!\n",ret);
}
}
ret = GetTop(s); //huoquzhandingyuansu
if(ret == FAILURE)
{
printf("Get Top Failure!\n");
}
else
{
printf("Top is %d\n",ret);
}
ret = ClearStack(&s);
if (ret == FAILURE)
{
printf("clear Failure!\n");
}
else
{
printf("clear Success!\n");
}
return 0;
}
2.sort.c
#include <stdio.h>
#include"stack.h"
#include <stdlib.h>
int main()
{
int i,num;
Stack s1,s2;
if (InitStack(&s1)==FAILURE || InitStack(&s2) == FAILURE )
{
printf ("Init Failure!\n");
exit(1);
}
for (i = 0;i<5; i++)
if(i == 0)
{
push(&s1,num);
}
else
{
while (num <GetTop(s1) && EmptyStack(s1)!=SUCCESS)
{
push(&s2,pop(&s1));
}
push(&s1,num);
while (EmptyStack(s2)!=SUCCESS)
{
push(&s1,pop(&s2));
}
}
for (i=0;i<5;i++)
{
printf("%d\ ",pop(&s1));
}
printf("\n");
return 0;
}
3.stack.c
#include "stack.h"
#include <stdio.h>
int InitStack(Stack *s)
{
if (NULL == s)
{
return FAILURE;
}
s->top = -1;
return SUCCESS;
}
int EmptyStack(Stack s)
{
return (s.top == -1)? SUCCESS: FAILURE;
}
int push(Stack *s,int e)
{
if (NULL == s)
{
return FAILURE;
}
if (s->top == 9)
{
return FAILURE;
}
s->data[s->top+1] = e;
s->top++;
return SUCCESS;
}
int GetTop(Stack s)
{
if (s.top == -1)
{
return FAILURE;
}
else
{
return s.data[s.top];
}
}
int pop(Stack *s)
{
int e;
if(NULL == s)
{
return FAILURE;
}
if(s->top == -1)
{
return FAILURE;
}
e = s->data[s->top];
s->top--;
return 0;
}
int ClearStack(Stack *s)
{
if(NULL == s)
{
return FAILURE;
}
s->top = -1;
return SUCCESS;
}
4.stack.h
#ifndef STACK_H
#define STACK_H
#define MAXSIZE 10
#define SUCCESS 10000
#define FAILURE 10001
struct stack
{
int data[MAXSIZE];
int top; //zhandingzhizhen(shuzuxiabiao)
};
typedef struct stack Stack;
#endif
三.今日开发中出现的问题汇总
1.敲代码速度有点慢,有时跟不上老师的节奏
2.学习的大部分精力放在敲代码上,都没有弄清楚代码的意义
四.今日未解决的问题
作业不会,没有老师带领,写不出来
五.自我评价
本人对电脑一窍不通,最基本的打字速度可能还不如小学生,一指弹打字,更不要提自己编写代码了,不是不认真学,是真的看不进去,不能理解为什么是这样写,看不懂太难了!
6.建议
希望老师不要布置作业了,没什么意义,太费时间了,还要写日志,任务量有点大,没有时间学习其他的内容,补考,计算机二级考试,考研,考教师资格证。。。希望老师能理解一下,你自己也能轻松点,而且就四天半,我们能学到什么,即使学会了这四天的内容,你走了,不要四天,我全忘了,没意义。