資料結構 佇列 不帶頭結點

2021-10-25 09:56:38 字數 969 閱讀 3834

/*

佇列 鏈式儲存結構

*/#include #include #define error -1

#define ok 0

typedef int elemtype;

typedef struct node

node;

typedef struct linkqueue

linkqueue;

int inqueue(linkqueue *q, elemtype value)

p->value = value;

p->next = null;

if (q->rear == null)

else

q->count += 1;

printf("inqueue count=%d\n", q->count);

return ok;

}int outqueue(linkqueue *q,elemtype *value)

*value = del->value;

q->front = del->next;

if (del == q->rear)

free(del);

q->count -= 1;

printf("outqueue count=%d\n", q->count);

return ok;

}int main()

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

for (int i = 1; i <= 10; i++)

free(q);

return 0;

}

佇列不帶頭結點  此時第乙個入佇列的結點 就要注意點,出佇列時依然是要判斷空佇列的情況,空佇列時 rear和front 都要置為null  否則不為null  in的時候  會有問題

對比較而言  帶有頭結點的佇列稍微好理解一點,就是會浪費乙個node的儲存空間

資料結構 單鏈表 帶頭結點和不帶頭結點

1 單鏈表 通過各結點的鏈結指標來表示結點間的邏輯關係,長度可擴充,遍歷或查詢 2 只能從指標的指示的首元結點開始,跟隨鏈結指標逐個結點進行訪問,進行刪除或插 4 5 6 單鏈表的結構定義 7 typedef int datatype 8 typedef struct node 9 linknode...

資料結構篇 單鏈表倒置(帶頭結點 不帶頭結點)

初始化如圖 1.我們需要把1這個結點作為最後乙個結點,所以要把1的next指向null 2.然後我們要新建結點,指向headnext的下一位,並把headnext的下一位指向headpre,3.headpre指向headnext為下一次迴圈做準備 headpre headnext 4.如果tempn...

資料結構(不帶頭結點的單鏈表)

單鏈表是一種鏈式訪問的資料結構,用一組位址任意的儲存單元存放線性表中的資料元素。鍊錶中的資料是以結點來表示的,每個結點的構成 元素 資料元素的映象 指標 指示後繼元素儲存位置 元素就是儲存資料的儲存單元,指標就是連線每個結點的位址資料 在寫單鏈表的時候,需要對結構體有一定的了解 這裡就不做過多的結構...