蘇嵌日誌3

2021-08-28 01:18:54 字數 3122 閱讀 7908

今日日誌3

姓名:蔣思雨

日期:2018.9.12

今日學習任務:

(1)棧和佇列的區別

(2)佇列的進出方法

(3)佇列的用法

今日任務完成情況:

根據老師的要求,**量大約500。

今日開發中出現的問題彙總:

還是編寫程式下問題,一些基本語法錯誤導致程式不能編譯成功。

今日未解決問題:

佇列的運用還不太熟悉

今日開發收穫:

(1)棧 :先進後出 佇列 : 先進先出 (順訊儲存 鏈式儲存)

(2)隊頭(front):取出資料

隊尾(rear):存放資料

(3)佇列的順序儲存 : 迴圈佇列

空對:隊頭隊尾重合

隊尾指標:指向最後乙個元素的後乙個

迴圈佇列長度:(rear-front +maxsize)%maxsize (列:5%7 =5)

判斷佇列是否滿(rear + 1) % maxsize== front

自我評價:雖然還是有很多小問題,但是比之前能夠自己找出一些錯誤並改正。

課上練習:

main.c

#include "queue.h"

#include

int main()

else

for(i = 0;i<10;i++)

else

}for(i = 0;i<6;i++)

else

}ret = lengthqueue(queue);

printf("length is %d\n",ret);

ret = clearqueue(queue);

if(ret == success)

else

ret = lengthqueue(queue);

printf("length is %d\n",ret);

ret=emptyqueue(queue);

if(success == ret)

else

ret = destroyqueue(&queue);

if(ret == success)

else

return

0;}

queue.h

#ifndef queue_h

#define queue_h

#define success 1000

#define failure 1001

struct node //jiedianxinxi

;typedef struct node node;

struct queue //duiliexinxi

;typedef struct queue q;

int initqueue(q **q);

int enterqueue(q *q,int e);

int deletequeue(q *q);

int lengthqueue(q *q);

int clearqueue(q *q);

int emptyqueue(q *q);

int destroyqueue(q **q);

#endif

queue.c

#include

"queue.h"

#include

int initqueue(q **q)

(*q) = (q *)malloc(sizeof(q)); //geiduiliexinxishenqingkongjian

if(null

== (*q))

node *p = (node *)malloc(sizeof(node)); //toujiedianshenqingkongjian

if(null

== p)

(*q)->front = (*q)->rear = p; //duitouzhizhen duiweizhizhendouzhixiangtoujiedian

return success;

}int enterqueue(q *q,int e)

node *p = (node *)malloc(sizeof(node));

if(null

== p)

p->next =

null; //zhizhenyu

p->

data

= e; //shujuyu

q->rear->next = p;

q->rear = p;

return success;

}int deletequeue(q *q)

if(q->rear == q->front) //kongdui

node *p = q->front->next;

int e = p->

data;

q->front->next = p->next;

free(p);

if(q->rear == p)

return e;

}int lengthqueue(q *q)

int length =

0; node *p = q->front->next;

while(p)

return length;

}int clearqueue(q *q)

node *p = q->front->next;

while(p)

q->rear=q->front; //shanwansuoyoujiedian,duiweizhizhenzhixiangkaitou

return success;

}int emptyqueue(q *q)

return (q->front == q->rear) ? success : failure;

}int destroyqueue(q **q)

free((*q)->front);

free(*q);

*q =

null;

return success;

}

蘇嵌日誌3

蘇嵌日誌3 姓名 翟雨婷 日期 2018年9月12日 今日學習任務 學習佇列結構的知識。編寫 約500行。今日學習問題 程式較長,基礎比較薄弱,含義不能理解透徹。今日學習收穫 今天學習了關於佇列的知識。如隊頭,隊尾,進隊,出隊,空隊等編寫方法。了解了佇列的特點和屬性。編寫了鏈式儲存和順序儲存佇列的簡...

蘇嵌日誌3

main.c include include queue.h include int main else if ret success ret emptyqueue queue if ret success else if ret failure for i 0 i 10 i else if ret...

蘇嵌日誌3

今日學習任務 複習棧和佇列的相關知識點,佇列的順序是先進先出,學習順序儲存和鏈式儲存 今日任務完成情況 佇列 先進先出 隊頭 取出資料 隊尾 存放資料 1 對列的順序儲存 迴圈佇列 2 空隊 就是隊頭隊尾重合 3 對尾指標,指向最後乙個元素的後乙個 容量為7,則實際儲存為6 4 迴圈佇列長度 rea...