開心IT面試題 佇列的順序表 鍊錶實現

2021-06-19 18:51:43 字數 1427 閱讀 7253

c++面試題中很大乙個板塊——資料結構,主要包括線性表、棧、佇列、字串、二叉樹等等,今天我們說說佇列。

一、概念

佇列是限定性線性表,只允許在表的一端插入元素,而在另一端刪除元素的線性表。允許刪除一端稱為隊頭,允許插入一端稱為隊尾

;佇列的特性是先進先出。佇列的儲存方式有兩種:順序儲存結構和鏈式儲存結構。

二、順序儲存結構

用一組連續的儲存單元依次存放自隊頭到隊尾的資料元素,設乙個位置指標front

(隊頭指標)動態指示隊頭元素在

順序佇列中的位置,設乙個位置指標rear

(隊尾指標)動態指示隊尾元素在

順序佇列中的位置。

資料元素可以是任意型別的資料,但所

有的資料元素必須是同一種型別。front=rear

表示空佇列。

1、儲存結構

typedef int selemtype;          //變數型別

#define queue_size 100 //佇列的初始大小

typedef struct seqqueue

seqqueue, *pseqqueue;

2、初始化佇列

void init_seqqueue(seqqueue *queue)

3、列印佇列

void printf_seqqueue(seqqueue *queue)

printf("\n");

}

4、佇列求長

int length_seqqueue(seqqueue *queue)

5、判斷佇列是否為空

bool isempty_seqqueue(seqqueue *queue)

6、判斷佇列是否已滿

bool isfull_seqqueue(seqqueue *queue)

7、入隊運算

bool push_seqqueue(seqqueue *queue, selemtype value)

queue->data[queue->rear] = value;

queue->rear++;

return true;

}

8、出隊運算

bool pop_seqqueue(seqqueue *queue, selemtype *value)

*value = queue->data[queue->front];

queue->front++;

return true;

}

三、鏈式儲存結構

順序表和煉表的相關熱點面試題

一,比較順序表和煉表的優缺點,說說他們分別在什麼場景下使用?順序表支援隨機訪問,單鏈表不支援 順序表插入和刪除資料效率很低,時間複雜度為o n 除尾插尾刪 單鏈表插入刪除效率更高時間複雜度為o 1 順序表的cpu快取記憶體效率更高,單鏈表cpu告訴快取低 二,刪除乙個無頭單鏈表的非尾節點 三,在乙個...

鍊錶的面試題

1 比較順序表和煉表的優缺點,它們分別在什麼場景下使用?1 順序表支援隨機訪問,單鏈表不支援隨機訪問。2 順序表插入 刪除資料效率很低,時間複雜度為o n 除尾插和尾刪 單鏈表插入 刪除效率更高,時間複雜度為o 1 3 順序表的cpu高速緩衝效率更高,單鏈表cpu高速緩衝效率低。2 列印單向鍊錶 v...

鍊錶的面試題

slist.h include include include typedef int datatype typedef struct listnode node,pnode 生成乙個新結點 pnode buyslistnode datatype data 列印鍊錶 void printslist ...