用鍊錶寫的乙個佇列

2021-07-30 11:52:13 字數 1254 閱讀 7476

以下是最近用鍊錶寫的乙個佇列,包括建立,入隊,出隊,列印等功能

/**

* @filename linkqueue.c

* @author haohaibo

* @data 2017/4/12

* @brief 用鍊錶實現乙個佇列

**/#include #include #include typedef int type_t;

typedef struct nodelqn_t;

typedef struct linkqueue_plq_t;

/** * @brief 建立乙個佇列

*/lq_t *linkqueue_creat()

n->data=0;

n->next=null;

lq->front=n;

lq->real=n;

lq->count =0;

return lq;

}/**

* @brief 入列

*/int linkqueue_in(lq_t *lq,type_t value)

n->data=value;

n->next=null;

lq->real->next=n;

lq->real=n;

lq->count++;

return 0;

}/**

* @brief 出列

*/type_t linkqueue_out(lq_t *lq)

n=lq->front->next;

value=n->data;

lq->front->next=n->next;

if(lq->real==n)

lq->real=lq->front;

free(n);

n=null;

lq->count--;

return value;

}/**

* @brief 全部元素出列

*/int linkqueue_outall(lq_t *lq)

while(i--)

linkqueue_out(lq);

}/**

* @brief 列印佇列元素

*/int linkqueue_show(lq_t *lq)

lq->front=p;

putchar(10);

return 0;

}int main(void)

如何寫乙個鍊錶

有的時候,處於記憶體中的資料並不是連續的。那麼這時候,我們就需要在 資料結構中新增乙個屬性,這個屬性會記錄下面乙個資料的位址。有了這個位址之後,所有的資料就像一條鍊子一樣串起來了,那麼這個位址屬性就起到了穿線鏈結的作用。相比較普通的線性結構,鍊錶結構的優勢是什麼呢?我們可以總結一下 1 單個節點建立...

用Python寫乙個簡單的單向鍊錶(包含頭尾指標)

最近學習資料結構,大部分以c語言為主,所以想嘗試一下用python編寫,感覺指標和類實現思維上還是差距蠻大的 coding utf 8 created on mon apr 01 22 20 44 2013 author zzcwing class listnode 定義乙個node的資料型別,包含...

用鍊錶實現乙個棧

include include typedef int elementtype 棧元素型別 define success 0 define failure 1 定義棧結構 typedef struct stackinfo stackinfo st 函式宣告 stackinfo st createst...