国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

(數(shù)據(jù)結構)鏈隊列的基本操作

這篇具有很好參考價值的文章主要介紹了(數(shù)據(jù)結構)鏈隊列的基本操作。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

#include<stdio.h>
#include<stdlib.h>
typedef struct QueueNode
{
	int data;
	struct QueueNode* next;
}LinkedQueueNode;
typedef struct LQueue
{
	LinkedQueueNode* front;  //隊頭指針
	LinkedQueueNode* rear;	 //隊尾指針
}*LinkedQueue;
//鏈隊列的初始化
LinkedQueue Init_LinkedQueue()
{
	LinkedQueue Q = (LinkedQueue)malloc(sizeof(LinkedQueue));  //為鏈隊頭、尾指針申請空間
	LinkedQueueNode* head = (LinkedQueueNode*)malloc(sizeof(LinkedQueueNode));
	if (head==NULL)
	{
		printf("申請隊列空間失敗\n");
	}
	if (head != NULL && Q != NULL)
	{
		head->next = NULL;
		Q->front = head;
		Q->rear = head;
	}
	return Q;
}
//判斷隊列空
int LinkedQueue_Empty(LinkedQueue Q)
{
	if (Q->front == Q->rear)
	{
		return 1; //隊列為空
	}
	else
	{
		return 0;
	}
}
//入隊
int Enter_LinkedQueue(LinkedQueue Q,int x)
{
	LinkedQueueNode* node;  //鏈隊節(jié)點指針變量
	node = (LinkedQueueNode*)malloc(sizeof(LinkedQueueNode));
	if (node == NULL)
	{
		return 0;	//申請隊列空間失敗
	}
	node->data = x;
	node->next = NULL;
	Q->rear->next = node;   //將新節(jié)點插入隊尾
	Q->rear = node;		//將隊尾元素設置為尾指針
	return 1;
}
//出隊
int Delete_LinkedQueue(LinkedQueue Q, int* x)
{
	LinkedQueueNode* node;
	if (Q->front == Q->rear)  //判斷隊列為空
	{
		return 0;
	}
	else
	{
		node = Q->front->next;	//將原隊列列頂元素的下一個節(jié)點賦值給node
		*x = node->data;
		Q->front->next = node->next; //頭指針Q指向鏈隊列的下一個數(shù)據(jù)元素
		if (node == Q->rear)
		{
			Q->rear = Q->front;  //若隊列僅有一個數(shù)據(jù)元素,讓隊列為空
		}
		free(node);
		return 1;
	}
}
//取隊列頭數(shù)據(jù)元素
int GetFront_LinkedQueue(LinkedQueue Q, int* x)
{
	if (Q->front == Q->rear)  //判斷隊列為空
	{
		return 0;
	}
	*x = Q->front->next->data;
	return 1;
}
int main()
{
	//初始化
	LinkedQueue Q;
	Q = Init_LinkedQueue();
	while (1)
	{
		printf("輸入1為入隊,輸入0為退隊\n");
		int ret;
		printf("請輸入選項\n");
		scanf("%d", &ret);
		if (ret == 1)
		{
			int x;
			printf("請輸入需要入隊的值\n");
			scanf("%d", &x);
			Enter_LinkedQueue(Q, x);
			continue;
		}
		else if (ret == 0)
		{
			int y = 0;
			Delete_LinkedQueue(Q, &y);
			printf("出隊的值為:\n");
			printf("%d \n", y);
			continue;
		}
		else
		{
			printf("選項輸入錯誤\n");
		}
	}
	return 0;
}

文章來源地址http://www.zghlxwxcb.cn/news/detail-719334.html

到了這里,關于(數(shù)據(jù)結構)鏈隊列的基本操作的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 數(shù)據(jù)結構:定長順序串(SString)基本操作的算法描述(C語言)

    作者在學習數(shù)據(jù)結構時,發(fā)現(xiàn)鮮有完全按照 C 語言描述的算法操作,這讓習慣于寫 .c 而不是 .cpp 的初學者很是頭疼。本文將基于 C 語言描述算法操作,如有錯漏還望大佬們指正。 本文將按照嚴惠敏所著《數(shù)據(jù)結構(C語言版)》所做的函數(shù)原型聲明進行算法描述,由于C語言不支

    2024年02月07日
    瀏覽(34)
  • C語言---數(shù)據(jù)結構實驗---哈夫曼樹及哈夫曼編碼的算法實現(xiàn)---圖的基本操作

    C語言---數(shù)據(jù)結構實驗---哈夫曼樹及哈夫曼編碼的算法實現(xiàn)---圖的基本操作

    本篇實驗代碼非本人寫,代碼源自外部,經調試解決了部分warning和error后在本地vs上可以正常運行,如有運行失敗可換至vs 未來會重構實現(xiàn)該兩個實驗 內容要求: 1、初始化(Init):能夠對輸入的任意長度的字符串s進行統(tǒng)計,統(tǒng)計每個字符的頻度,并建立哈夫曼樹 2、建立編碼

    2024年02月13日
    瀏覽(93)
  • 數(shù)據(jù)結構和算法學習記錄——初識二叉樹(定義、五種基本形態(tài)、幾種特殊的二叉樹、二叉樹的重要性質、初識基本操作函數(shù))

    數(shù)據(jù)結構和算法學習記錄——初識二叉樹(定義、五種基本形態(tài)、幾種特殊的二叉樹、二叉樹的重要性質、初識基本操作函數(shù))

    目錄 二叉樹的定義 二叉樹具體的五種基本形態(tài) 1.空樹 2.只有一個節(jié)點 3.有左子樹,但右子樹為空 4.有右子樹,但左子樹為空 ?5.左右兩子樹都不為空 特殊二叉樹 斜二叉樹 滿二叉樹? 完全二叉樹 二叉樹的幾個重要性質 初識二叉樹的幾個操作函數(shù)? 二叉樹T: 一個有窮的節(jié)點

    2024年02月03日
    瀏覽(23)
  • 數(shù)據(jù)結構上機練習——單鏈表的基本操作、頭文件、類定義、main函數(shù)、多種鏈表算法的實現(xiàn),含注釋

    數(shù)據(jù)結構上機練習——單鏈表的基本操作、頭文件、類定義、main函數(shù)、多種鏈表算法的實現(xiàn),含注釋

    ??頭文件和源文件分開有很多好處:可以提高編譯速度、提高代碼的可維護性、提高代碼的可重用性和可擴展性,同時也可以使代碼結構更清晰,方便代碼的管理和維護。 LinkList.h test.cpp ????????????? ?? (下面所有函數(shù)都默認在類中實現(xiàn)) ??我們以

    2024年02月07日
    瀏覽(97)
  • 數(shù)據(jù)結構--串的基本操作

    數(shù)據(jù)結構--串的基本操作

    第五話 數(shù)據(jù)結構之串 文章目錄 一、了解什么是串 二、串的基本特征 三、串的基本操作 串的初始化 串的輸出? 四、串的匹配模式 五、總結 串(即字符串)是一種特殊的線性表,在信息檢索、文本編輯等領域有廣泛的應用。其特殊性體現(xiàn)在組成線性表的每個數(shù)據(jù)元素是單個

    2023年04月17日
    瀏覽(31)
  • 數(shù)據(jù)結構--圖的基本操作

    數(shù)據(jù)結構--圖的基本操作

    使用的存儲模式: 圖的基本操作: ? Adjacent(G,x,y):判斷圖G是否存在邊x, y或(x, y)。 ? Neighbors(G,x):列出圖G中與結點x鄰接的邊。 ? InsertVertex(G,x):在圖G中插入頂點x。 ? DeleteVertex(G,x):從圖G中刪除頂點x。 ? AddEdge(G,x,y):若無向邊(x, y)或有向邊x, y不存在,則向圖G中添加該

    2024年02月16日
    瀏覽(29)
  • 【數(shù)據(jù)結構】圖的基本操作

    【數(shù)據(jù)結構】圖的基本操作

    一、問題描述 分別以鄰接矩陣和鄰接表作為存儲結構,實現(xiàn)以下圖的基本操作: 增加一個新結點v,Insert(G,v); 刪除頂點v及其相關的邊,Delete(G,v); 增加一條邊v,w,Insert(G,v,w); 刪除一條邊v,w,Delete(G,v,w); 二、設計思路 1、鄰接矩陣實現(xiàn): ????????鄰接矩陣實現(xiàn)圖的基本

    2024年02月06日
    瀏覽(22)
  • 數(shù)據(jù)結構之棧的基本操作

    數(shù)據(jù)結構之棧的基本操作

    該順序棧涉及到了存儲整型數(shù)據(jù)的順序棧還有存儲字符型數(shù)據(jù)的順序棧 實現(xiàn)的功能有:入棧、出棧、判斷是否為空棧、求棧的長度、清空棧、銷毀棧、得到棧頂元素 此外根據(jù)上述功能,編寫了數(shù)值轉換(十進制轉化八進制)方法、括號匹配方法。 控制臺界面展示: 進棧展示

    2024年01月23日
    瀏覽(24)
  • 【數(shù)據(jù)結構】串的基本操作及應用

    【數(shù)據(jù)結構】串的基本操作及應用

    分別定義兩個結構體——串的定長順序存儲、串的堆式順序存儲 ? 問題: 1、編寫函數(shù),串用定長順序存儲表示來實現(xiàn)串的基本操作; 2、?編寫串的匹配算法,實現(xiàn)查找功能。 算法思想闡述: BF 算法:首先S[1] 和T[1] 比較,若相等,則再比較S[2] 和T[2] ,一直到T[M] 為止;若

    2023年04月26日
    瀏覽(27)
  • 【數(shù)據(jù)結構】串的基本定義及操作

    【數(shù)據(jù)結構】串的基本定義及操作

    ??積薪高于山,焉用先后別 ?? ? ?? 正式開始學習數(shù)據(jù)結構啦~此專欄作為學習過程中的記錄 ?? 概念熟記: 串 是由 0個或多個字符 組成的有限的序列,記作 S = ′ a 1 a 2 . . . a n ′ S=\\\'a_1a_2...a_n\\\' S = ′ a 1 ? a 2 ? ... a n ′ ? ,其中,當 n = 0 n=0 n = 0 時表示空串 串 中任意多個

    2024年02月06日
    瀏覽(34)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包