苏嵌日志2

学习日志
姓名:崔宇 日期:2018.9.11
今日学习任务:
学习了栈和队列的内容,怎样定义一个结构体变量,学会自定义头文件的知识,理解栈的用法,编写进栈,出栈和读取栈顶元素和栈中元素的程序。

今日任务完成情况:
上课跟着老师的节奏把程序已经全部写完并编译运行成功。
线性结构存储:
1.顺序存储:(连续)
2.链式存储(不连续)
栈的属性:
长度 栈顶指针(数组下标)
容量
起始地址,初始化栈,进栈,出栈,判定栈是否为空,获取栈顶元素,清空栈。
例子:Int a[10];
Int top;
用结构体来编写
Struct stack
{
int data[10];
int top;
}

今日开发中出现的问题汇总:
栈的相关知识理解不够透彻,对于数组的进栈与出栈相关的程序编写仍有困难 。

今日开发收获:
复习了c语言栈的操作,并且来编写相关函数。

自我评价:
基本完成任务,打字速度需要提高,继续加油。
stack.h的头文件:
1 #infndef STACK_H
2 #define STACK_H
3
4 #define MAXSIZE 10
5 #define SUCCESS 1000
6 #define FAILURE 1001
7
8 struct stack
9 {
10 int data [MAXSIZE];//shuzu
11 int top;//zhandingzhizhen()shuzuxiabiao
12 };
13 typedef struck stack S
14 #endif

Main.c

include “stdio.h”

include “stack.h”

int main()
{
S stack;
int ret,i;

ret =InitStack(&stack);

if(SUCCESS == ret)
{

 printf("Init Success!\n");
 }
 else
 {
 printf("Init Failure!\n");
 }

for(i=0;i<5;i++)
{
ret = push(&stack,i+1);
if(SUCCESS == ret)
{
printf(“push %d success!\n”,i+1);
}
else
{ printf(“push failure!\n”);
}
}

for(i=0;i<3;i++)
{
ret =pop(&stack);
if(ret==FAILURE)
{printf(“pop failure!\n”);
}
else
{printf(“pop %d success!\n”,ret);
}
}

 ret =Emptystack(stack);
 if(ret==SUCESS)
 {printf("stack is empty!\n");
 }
 else
 {
     printf("stack is empty!\n");
    }

ret =GetTop(stack);
if(ret == FAILURE)
{
printf("Get Top Failure!\n");
}
else
{
  printf("Top %d\n",ret);
  }
    return 0;

}

Stack.c

include”stack.h”

include”stdlib.h”

int InitStack(S *s)
{
if(NULL== s)
{
return FAILURE;
}

 s->top = -1;

 return  SUCCESS;

}
int push(S *s,int e)
{if(NULL==s)
{return FAILURE;
}
if(s->top==MAXSIZE-1);
{return FAILURE;
}
s->data[s->top+1]=e;
s->top++;
return SUCCESS;
}
int pop(S *s)

{
if(NULL==0)
return FAILURE;
}
if(-1==s->top)
{return FAILURE;

}
int e=s->data[s->top];
{ s->top- -;
return 0;
}
int EmptyStack(S ,s)
{
return(s,top== -1)?SUCCESS :FAILURE;
}

int Get Top(S,s)
{
   if(s,top==-1);

     return FAILURE;
     }
    return s,data[s,top];
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值