最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言實現鏈隊列代碼

 更新時間:2018年07月23日 09:01:04   作者:dmfrm  
這篇文章主要為大家詳細介紹了C語言實現鏈隊列代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了C語言實現鏈隊列的具體代碼,供大家參考,具體內容如下

#include <stdio.h>

/* 隊列的結構體 */
typedef int DataType;
#define NODE_LEN sizeof(NODE) 

/* 隊列的節(jié)點 */
typedef struct stNode
{
  DataType data;
  struct stNode* next;
}NODE;

/* 隊列 */
typedef struct stQueue
{
  NODE* head; //隊列的頭
  NODE* tail; //隊列的尾
}QUEUE;

/* 初始化隊列,不帶頭結點*/
int initQueue(QUEUE* INQueue)
{

  INQueue->head = NULL;
  INQueue->tail = NULL;

  return 0;
}

/* 從隊尾插入一個元素 */
int enQueue(QUEUE* InQueue,DataType InData)
{
  NODE* pNewNode = (NODE*)malloc(NODE_LEN);
  if (pNewNode == NULL)
  {
    return -1;
  }

  pNewNode->data = InData;
  pNewNode->next = NULL;

  /* 判斷,現在隊列里面有沒有節(jié)點 */
  if (InQueue->head == NULL)
  {
    InQueue->head = pNewNode;
    InQueue->tail = pNewNode;
  }
  else
  {
    InQueue->tail->next = pNewNode;
    InQueue->tail = pNewNode;
  }

  return 0;
}

/* 遍歷該隊列 */
int visitQueue(QUEUE InQueue)
{
  QUEUE* pstTemp = &InQueue;

  /* 判斷隊列是否為空隊列 */
  if (pstTemp->head == NULL)
  {
    printf("visitQueue: this queue is empty\n");
    return -1;
  }

  /* 遍歷該隊列中的所有元素 */
  while (pstTemp->head->next != NULL)
  {
    printf("%d ", pstTemp->head->data);
    pstTemp->head = pstTemp->head->next;
  }
  printf("%d \n", pstTemp->head->data);

  return 0;
}

/* 出隊列 */
int delQueue(QUEUE* InQueue,DataType* OutData)
{
  if (InQueue->head == NULL)
  {
    printf("delQueue: this queue is empty\n");
    return -1;
  }

  *OutData = InQueue->head->data;

  NODE* pstTemp = InQueue->head;
  InQueue->head = InQueue->head->next;

  delete pstTemp;
  return 0;
}

/* 判斷隊列是否是空隊列 */
int isEmptyQueue(QUEUE InQueue)
{
  if (InQueue.head == NULL)
  {
    return 0; //是空隊列
  }
  return 1; //不是空隊列
}

int main()
{
  /* 創(chuàng)建一個隊列 */
  QUEUE queue;
  DataType data;

  initQueue(&queue);

  /* 入隊列 */
  enQueue(&queue, 12);
  enQueue(&queue, 11);
  enQueue(&queue, 2);
  visitQueue(queue);

  /* 出隊列 */
  delQueue(&queue, &data);
  visitQueue(queue);
  printf("data = %d\n", data);

  visitQueue(queue);

  if (0 == isEmptyQueue(queue))
  {
    printf("This is empty queue\n");
  }
  else
  {
    printf("This is not empty queue\n");
  }
  return 0;
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 遞歸法求最大公約數和最小公倍數的實現代碼

    遞歸法求最大公約數和最小公倍數的實現代碼

    今天整理了一下用遞歸法求最大公約數(gcd)和最小公倍數(lcm)。主要的工作是求最大公約數。數學上可以用輾轉法求最大公約數
    2013-05-05
  • c++中string類成員函數c_str()的用法

    c++中string類成員函數c_str()的用法

    c_str()函數返回一個指向正規(guī)c字符串的指針,內容和string類的本身對象是一樣的,通過string類的c_str()函數能夠把string對象轉換成c中的字符串的樣式
    2013-09-09
  • C++實現循環(huán)隊列和鏈式隊列的示例

    C++實現循環(huán)隊列和鏈式隊列的示例

    下面小編就為大家分享一篇C++實現循環(huán)隊列和鏈式隊列的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • 詳解應用程序與驅動程序通信DeviceIoControl

    詳解應用程序與驅動程序通信DeviceIoControl

    這種通信方式,就是驅動程序和應用程序自定義一種IO控制碼,然后調用DeviceIoControl函數,IO管理器會產生一個MajorFunction為IRP_MJ_DEVICE_CONTROL,MinorFunction為自己定義的控制碼的IRP,系統就調用相應的處理IRP_MJ_DEVICE_CONTROL的派遣函數
    2021-06-06
  • Unity3D實現經典小游戲Pacman

    Unity3D實現經典小游戲Pacman

    這篇文章主要介紹了基于Unity3D制作一做個經典小游戲Pacman,文中的示例代碼講解詳細,對我們學習Unity3D有一定的幫助,感興趣的小伙伴可以了解一下
    2021-12-12
  • C語言小程序 楊輝三角示例代碼

    C語言小程序 楊輝三角示例代碼

    輸入要顯示的楊輝三角的行數,會打印出金字塔型的楊輝三角,不過行數太多的話,效果不太好,可以再調整一下格式控制
    2013-07-07
  • C語言system函數使用方法詳解

    C語言system函數使用方法詳解

    本文詳細講解了C語言system函數的使用方法,文中通過示例代碼介紹的非常詳細。對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-12-12
  • C++圖文并茂講解類型轉換函數

    C++圖文并茂講解類型轉換函數

    類型轉換(type cast),是高級語言的一個基本語法。它被實現為一個特殊的運算符,以小括號內加上類型名來表示,接下來讓我們一起來詳細了解
    2022-05-05
  • C語言算法學習之雙向鏈表詳解

    C語言算法學習之雙向鏈表詳解

    雙向鏈表也叫雙鏈表,是鏈表的一種,它的每個數據結點中都有兩個指針,分別指向直接后繼和直接前驅。本文主要介紹了C語言算法中雙向鏈表的實現,需要的可以參考一下
    2022-05-05
  • C語言實現簡單的學生學籍管理系統

    C語言實現簡單的學生學籍管理系統

    這篇文章主要為大家詳細介紹了C語言實現簡單的學生學籍管理系統,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07

最新評論

离岛区| 慈利县| 建昌县| 镇平县| 伊吾县| 万全县| 吴堡县| 北宁市| 沁水县| 永顺县| 墨玉县| 大邑县| 灌南县| 府谷县| 永胜县| 兴化市| 安宁市| 南涧| 吉水县| 新乡市| 南京市| 泾阳县| 宜章县| 东兴市| 米泉市| 依兰县| 肥东县| 开江县| 南涧| 古田县| 康保县| 南安市| 福州市| 嘉义县| 绥滨县| 闽清县| 汤阴县| 扬州市| 阿瓦提县| 凌海市| 南平市|