苏嵌实训

姓名 : 孙欢
日期 : 2018-9-5

今日结果
通过今天的学习,我了解了链表信息的传递,也知道什么是虚拟地址与物理地址,同时明白了代码的重复性。

今日任务

#include <stdio.h>
#include "queue.h"
#include <stdlib.h>

int main()
{
    Q queue;
    int ret,i;

    ret = InitQueue(&queue);
    if(ret == FATLURE)
    {
        printf("Init FATLUE\n");
        exit(1); //退出
    }
    else if(ret == SUCCESS) 
    {
        printf("Init SUCCESS\n");
    }
    if(ret == SUCCESS)
       {
            printf(" enter %d success\n",i + 1);
       }
    ret = EmpytQueue(queue);
    if(ret == SUCCESS)
    {
        printf("queue is empty\n");
    }
    else if( ret == FATLURE)
    {
         printf("queue is not empty\n");
    }

    for(i = 0;i < 10; i++)
    {
        ret = EnterQueue(&queue, i + 1);
       if( ret == FATLURE)
       {
           printf(" enter failure\n");
       }
       else if(ret == SUCCESS)
       {
            printf(" enter %d success\n",i + 1);
       }
    }

    int length = LengthQueue(queue);
    printf("Lemgth is %d\n",length);

    ret = GetFront(queue);
    if( ret == FATLURE)
     {
         printf("get front faillure!\n");
     }
     else
     {
         printf("front is %d\n", ret);
     }

    for(i = 0 ;i < 5; i++)
    {
       ret  = DelQueue(&queue);
       if( ret == FATLURE)
     {
         printf("Del faillure!\n");
     }
     else 
     {
          printf ("Del %d Success\n",ret);
     }
   }

    length = LengthQueue(queue);
    printf("Lemgth is %d\n",length);

     ret = GetFront(queue);
    if( ret == FATLURE)
     {
         printf("get front faillure!\n");
     }
     else
     {
         printf("front is %d\n", ret);
     }

     ret = ClearQueue(&queue);
     if(ret == SUCCESS)
       {
            printf("Clear success\n");
       }
       else 
       {
             printf("CLear faillure!\n");
       }


    ret = GetFront(queue);
    if( ret == FATLURE)
     {
         printf("get front faillure!\n");
     }
     else
     {
         printf("front is %d\n", ret);
     }

     ret = DesstoryQueue(&queue);
     if( ret == FATLURE)
     {
         printf("Desstory faillure!\n");
     }
     else
     {
         printf("Desstory Success\n");
     }
    return 0

include “queue.h”

include

#ifndef  QUEUE_H
#define  QUEUE_H

#define  MAXSIZE 10
#define  SUCCESS 10000
#define  FATLURE 10001

struct queue
{
    int *date;
    int front;
    int rear;
};
typedef struct queue Q;

int EnterQueue(Q *q,int e);
int EnterQueue(Q *q,int e);
int EmpytQueue(Q q);
int LengthQueue(Q q);
int GetFront(Q q);
int DelQueue(Q *q);
int ClearQueue(Q *q);
int DesstoryQueue(Q *q);

#endif
``

include

include “queue.h”

int main()
{
Q queue;
int ret,i;

ret = InitQueue(&queue);
if(ret == FATLURE)
{
    printf("Init fatlaure\n");
}
else if( ret == SUCCESS)
{ 
    printf("Init success\n");
}

for( i = 0;i < 10; i++)
{
    ret = EnterQueue(&queue, i + 1);
    if(ret == FATLURE)
     {
     printf("Enter fatlaure\n");
    }
    else if( ret == SUCCESS)
    { 
     printf("Enter %d success\n",i + 1);
    }
}

int length = LengthQueue(queue);
printf("The length is %d\n",length);

ret = GetFront(queue);
if(ret == FATLURE)
     {
     printf("GetFront fatlaure\n");
    }
    else 
    { 
     printf("GetFront %d\n",ret);
    }

 for(i = 0; i < 3; i++)
 {
     ret = DelQueue(&queue);
     if(ret == FATLURE)
     {
     printf("Delate fatlaure\n");
    }
    else 
    { 
     printf("Success %d\n",ret);
    }
 }

 ret = ClearQueue(&queue);
 if(ret == FATLURE)
    {
     printf("Clear fatlaure\n");
    }
    else 
    { 
     printf("Clear Success\n");
    }

    ret = DesstoryQueue(&queue);
     if( ret == FATLURE)
 {
     printf("Desstory faillure!\n");
 }
 else
 {
     printf("Desstory Success\n");
 }

 ret = GetFront(queue);
if(ret == FATLURE)
     {
     printf("GetFront fatlaure\n");
    }
    else 
    { 
     printf("GetFront %d\n",ret);
    }

return 0;

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90

include

include “queue.h”

int InitQueue(Q *q)
{
Node p= (Node )malloc(sizeof(Node));

 if(NULL == p)
 {
     return FATLURE;
 }

 p->next = NULL;

 q->front = q ->rear = p;

 return SUCCESS;

}

int EnterQueue(Q *q, int e)
{
if(NULL == q)
{
return FATLURE;
}

 if(q ->rear == NULL)
 {
    return FATLURE;
 }

 Node *p= (Node *)malloc(sizeof(Node));
 if(NULL == p)
 {
     return FATLURE;
 }
 p ->date = e;
 p ->next = NULL;

 q ->rear->next = p;
 q ->rear = p;

 return SUCCESS;

}

int LengthQueue(Q q)
{
int length = 0;
Node *p = q.front ->next;
while(p)
{
length++;
p = p ->next;
}
return length;

}

int GetFront(Q q)
{
if(q.front == q.rear)
{
return FATLURE;
}
return q.front ->next ->date;
}

int DelQueue(Q *q)
{
if(NULL == q)
{
return FATLURE;
}
if(q ->rear == q ->front)
{
return FATLURE;
}

 Node *p = q ->front ->next;
 int e = p ->date;
 q ->front ->next = p ->next;
 free(p);
 if(q ->rear == p)
 {
    q ->rear = q ->front;
 }

 return e;

}

int ClearQueue(Q *q)
{
if(NULL == q)
{
return FATLURE;
}
if(q ->rear == q ->front)
{
return FATLURE;
}
Node *p = q ->front ->next;
while(p)
{
q ->front ->next = p ->next;
free(p);
p = q ->front ->next;
}
q ->rear = q ->front;

return SUCCESS;

}

int DesstoryQueue(Q *q)
{
if( NULL == q)
{
return FATLURE;
}

 free(q ->front);

 q ->front = q ->rear = NULL;
 return SUCCESS;

}

ifndef QUEUE_H

define QUEUE_H

define SUCCESS 10000

define FATLURE 10001

struct node
{
int date;
struct node *next;
};
typedef struct node Node;

struct queue
{
Node *front;
Node *rear;
};
typedef struct queue Q;

int InitQueue(Q *q);
int EnterQueue(Q *q, int e);
int LengthQueue(Q q);
int GetFront(Q q);
int DelQueue(Q *q);
int ClearQueue(Q *q);
int DesstoryQueue(Q *q);

endif

“`

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值