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

順序表和鏈表的練習題

這篇具有很好參考價值的文章主要介紹了順序表和鏈表的練習題。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

順序表

題目一:

順序表和鏈表的練習題

題目分析:

該題目需要先對順序表進行遍歷至元素x正確插入位置,再對順序表完成插入操作。因此涉及到for循環(huán)與if語句的使用

代碼實現(xiàn)

/********************************************************************
*
*	name	 :	SequenceList_insert
*	function :  實現(xiàn)插入元素x,并保持鏈表的遞增順序
*	argument :  
*				@*L 順序表首元素地址
				@x  插入元素值
*				
*	retval	 :  none
*	author	 :  790557054@qq.com
*	date	 :  2024/04/22
* 	note	 :  none
* 	
* *****************************************************************/
void SequenceList_Insert(SeqList_t *L,int x)
{
	//定義一個變量用于存儲正確位置的下標
	int temp = -1;
	//對順序表內(nèi)元素與x進行大概判斷
	if( x > L[last / 2])
	{
		for (int i = (last / 2) + 1; i <= last;i++)
		{
			if(x < L[i])
			{
				temp = i;
				break;
			}
		}
		//將插入位置后的后繼元素后移
		for (int i = last; i >= temp;i--)
		{
			L[i + 1] = L[i];
		}

		//插入x
		L[temp] = x;
	}	
	else
	{
		//遍歷查找x元素插入位置
		for (int i = 0; i <= (last / 2);i++)
		{
			if(x < L[i])
			{
				temp = i;
				break;
			}
		}
		//將插入位置后的后繼元素后移
		for (int i = last; i >= temp;i--)
		{
			L[i + 1] = L[i];
		}

		//插入x
		L[temp] = x;
	}

題目二:

順序表和鏈表的練習題

題目分析

該題目需要對順序表制定元素刪除,并且還需要返回值。所以定義的函數(shù)接口不能為void類型,使用for循環(huán)對p后繼順序表元素進行遍歷前移,且考慮可能出現(xiàn)刪除失敗的原因

代碼實現(xiàn)

/********************************************************************
*
*	name	 :	SequenceList_Del
*	function :  實現(xiàn)刪除順序表指定位置元素
*	argument :  
*				@*L 順序表首元素地址
				@p  指定位置p
*				
*	retval	 :  none
*	author	 :  790557054@qq.com
*	date	 :  2024/04/22
* 	note	 :  none
* 	
* *****************************************************************/
int SequenceList_Del(SeqList_t *L, int p)
{
	//排除p錯誤情況
	if(p < 0 || p> length -1)
		return 0;

	//將被刪除位置p的元素賦值給e
	int e;
	L[p] = e;
	//對位置p的后繼元素進行
	for (int i = p; i <= last; i++)
	{
		L[i] = L[i + 1];
	}
	//將最后順序表最后元素清零且last減少1
	L[last] = 0;
	last--;
	return 1;
}

鏈表

題目一:

順序表和鏈表的練習題

題目分析:

該題目涉及到單向鏈表的遍歷與刪除。首先,定義一個結構體指針變量,用于在遍歷時存儲最小值節(jié)點的直接前驅節(jié)點的地址;其次,需要對最小值節(jié)點位置進行判斷,排除掉該節(jié)點為尾節(jié)點的情況;最后,利用該指針變量完成目標節(jié)點的刪除操作

代碼實現(xiàn)

/********************************************************************
*
*	name	 :	LkList_MinDle
*	function :  實現(xiàn)刪除單向鏈表的最小值節(jié)點
*	argument :  
*				@*L 單向鏈表頭結點
*				
*	retval	 :  none
*	author	 :  790557054@qq.com
*	date	 :  2024/04/22
* 	note	 :  none
* 	
* *****************************************************************/
void LkList_MinDle(LkList_t*L) //假設單向鏈表結構體類型為 LkList_t
{
	//定義個結構體指針變量p1指向頭結點L ,p2為循環(huán)指針變量,p3為循環(huán)變量的前驅節(jié)點
	LkList_t *p1 = L;
	LkList_t *p2 = NULL;
	LkList_t *p3 = L;

	//定義一個變量用于存儲數(shù)據(jù)最小值,假設數(shù)據(jù)類型為int
	int Data_Min = p2->data;

	//遍歷出最小值節(jié)點的位置,循環(huán)中止條件,即循環(huán)至尾結點
	for (p2 = L->next ; p2 != NULL;p2 = p2->next)
	{
		//判斷是否為最小值節(jié)點
		if((p2->data) > (p2->next->data))
		{
			Data_Min = p2->next->data;
			p1 = p2;    //將p1變?yōu)樽钚≈倒?jié)點的直接前驅節(jié)點
		}
		p3 = p3->next;  //p3為p2的直接前驅節(jié)點
	}

	//判斷最小值節(jié)點是否為尾節(jié)點,此時的p2為鏈表尾節(jié)點
	if( Data_Min > p2->data )
	{
		//先連接
		p3->next = NULL;
		//再刪除
		free(p2);
		return; 		//結束該函數(shù)
	}

	//排除最小值節(jié)點為尾節(jié)點后,將最小值節(jié)點備份至p2
	p2 = p1->next;
	p1->next = p1->next->next;
	p2->next = NULL;
	
	//釋放掉p2
	free(p2);
    
	return; //正常退出函數(shù)
}

題目二:

順序表和鏈表的練習題

代碼分析:

對題目要求分析可得,[p1和 p2之間節(jié)點個數(shù)差 = k],其中p1為題目所求位置節(jié)點,p2為鏈表尾節(jié)點,K為題目中所給數(shù),

回答:

1)該算法需要定義兩個結構體指針變量p1和p2,其中p2需從單鏈表頭結點遍歷至尾結點,p1則需按照[p1和 p2之間節(jié)點個數(shù)差 = k ]公式調(diào)整距離尾結點的個數(shù),隨后返回p1節(jié)點的data值和1;當鏈表中無節(jié)點時,返回0.

2)首先,定義兩個結構體指針變量p1和p2;其次,對鏈表元素個數(shù)進行判斷,進行錯誤情況排除;最終,利用for循環(huán)遍歷鏈表,將p1和p2分別表示正確的節(jié)點,返回p1的data值和1

3)代碼實現(xiàn):文章來源地址http://www.zghlxwxcb.cn/news/detail-855750.html

/********************************************************************
*
*	name	 :	LkList_Reciprocal
*	function :  實現(xiàn)輸出單鏈表的第K個值的data值
*	argument :  
*				@*head 單向鏈表的頭結點
				@k 倒數(shù)第幾個數(shù)
*				
*	retval	 :  調(diào)用成功輸出倒數(shù)第k個節(jié)點的data值并且返回1;否則返回0.
*	author	 :  790557054@qq.c
*	date	 :  2024/04/22
* 	note	 :  none
* 	
* *****************************************************************/

//假設data類型為int
int LkList_Reciprocal(LkList_t*head, int k)
{
	LkList_t *p1 = head;
	LkList_t *p2 = head;
	//定義一個整型變量i,進行判斷p2位置
	int i = 0;

	//排除錯誤情況
	if(p2->next == NULL)
	{
		return 0;
	}

	//當p2為尾節(jié)點時跳出while循環(huán)
	while(p2->next)
	{
		p2 = p2->next;
		i++;
		if(i >= k) //當p1和p2之間節(jié)點差為k后,p1和p2需要同時前進遍歷
		{
			p1 = p1->next;
		}
	}

	printf("倒數(shù)第(k = %d)個節(jié)點的data值為:%d\n", k, p1->data);
	return 1;
}

到了這里,關于順序表和鏈表的練習題的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關文章

  • 【數(shù)據(jù)結構】順序表和鏈表

    【數(shù)據(jù)結構】順序表和鏈表

    線性表(linear list)是n個具有相同特性的數(shù)據(jù)元素的有限序列。 線性表是一種在實際中廣泛使 用的數(shù)據(jù)結構,常見的線性表:順序表、鏈表、棧、隊列、字符串... 線性表在邏輯上是線性結構,也就說是連續(xù)的一條直線。但是在物理結構上并不一定是連續(xù)的, 線性表在物理上

    2024年01月20日
    瀏覽(156)
  • 數(shù)據(jù)結構2:順序表和鏈表

    數(shù)據(jù)結構2:順序表和鏈表

    目錄 1.線性表 2.順序表 2.1概念及結構 2.2接口實現(xiàn) 2.3數(shù)據(jù)相關面試題 2.4順序表的問題及思考 3.鏈表 3.1鏈表的概念及結構 3.2鏈表的分類 3.3鏈表的實現(xiàn) 3.4鏈表面試題 3.5雙向鏈表的實現(xiàn) 4.順序表和鏈表的區(qū)別 線性表(linear list)是具有相同特征的數(shù)據(jù)元素的有限序列。線性表是

    2023年04月17日
    瀏覽(93)
  • 數(shù)據(jù)結構:2_順序表和鏈表

    數(shù)據(jù)結構:2_順序表和鏈表

    線性表(linear list)是n個具有相同特性的數(shù)據(jù)元素的有限序列。 線性表是一種在實際中廣泛使用的數(shù)據(jù)結構, 常見的線性表:順序表、鏈表、棧、隊列、字符串… 線性表在邏輯上是線性結構,也就說是連續(xù)的一條直線。但是在物理結構上并不一定是連續(xù)的 ,線性表在物理上

    2024年01月18日
    瀏覽(100)
  • 數(shù)據(jù)結構順序表和鏈表(超詳細)

    數(shù)據(jù)結構順序表和鏈表(超詳細)

    線性表 ( linear list ) 是 n 個具有相同特性的數(shù)據(jù)元素的有限序列。 線性表是一種在實際中廣泛使 用的數(shù)據(jù)結構, 常見的線性表:順序表、鏈表、棧、隊列、字符串 ... 線性表在邏輯上是線性結構,也就說是連續(xù)的一條直線。但是在物理結構上并不一定是連續(xù)的, 線性表在

    2024年02月13日
    瀏覽(108)
  • 順序表和鏈表對應的經(jīng)典算法

    順序表和鏈表對應的經(jīng)典算法

    目錄 一,移除元素 二,合并兩個有序數(shù)組 三,環(huán)形鏈表的約瑟夫問題 四,鏈表的中間節(jié)點 五,合并兩個有序鏈表 六,反轉鏈表 七,移除鏈表元素 一,移除元素 思路:定義一個循環(huán)遍歷數(shù)組,如果遇到的不是val就記錄下來這個元素,如果不是就跳過 定義兩個指針,一個用

    2024年02月21日
    瀏覽(23)
  • 順序表和鏈表從零詳細梳理(順序表篇)

    順序表和鏈表從零詳細梳理(順序表篇)

    線性表(linear list)是n個具有相同特性的數(shù)據(jù)元素的有限序列。 線性表是一種在實際中廣泛使用的數(shù)據(jù)結構,常見的線性表:順序表、鏈表、棧、隊列、字符串… 線性表在邏輯上是線性結構, 也就說是連續(xù)的一條直線 。但是在物理結構上并不一定是連續(xù)的,線性表在物理上

    2024年02月22日
    瀏覽(28)
  • 【數(shù)據(jù)結構初階】順序表和鏈表(1)

    【數(shù)據(jù)結構初階】順序表和鏈表(1)

    線性表(linear list) 是n個具有相同特性的數(shù)據(jù)元素的有限序列。 線性表是一種在實際中廣泛使 用的數(shù)據(jù)結構,常見的線性表:順序表、鏈表、棧、隊列、字符串… 線性表在邏輯上是線性結構,也就說是連續(xù)的一條直線。但是在物理結構上并不一定是連續(xù)的,線性表在物理上

    2024年02月08日
    瀏覽(1598)
  • 【手撕數(shù)據(jù)結構】(三)順序表和鏈表

    【手撕數(shù)據(jù)結構】(三)順序表和鏈表

    ???線性表是n個具有相同特性的數(shù)據(jù)元素的有限序列。線性表是一種在實際中廣泛使用的數(shù)據(jù)結構,常見的線性表:順序表、鏈表、棧、隊列、字符串… ???線性表在邏輯上是線性結構,也就說是一條連續(xù)的直線。但是在物理結構上并不一定是連續(xù)的,線性表在物理上存儲

    2024年02月05日
    瀏覽(97)
  • 數(shù)據(jù)結構奇妙旅程之順序表和鏈表

    數(shù)據(jù)結構奇妙旅程之順序表和鏈表

    ??????? write in front???????? ?????????大家好,我是xiaoxie.希望你看完之后,有不足之處請多多諒解,讓我們一起共同進步????? . ?? ?xiaoxie?????????—CSDN博客 本文由xiaoxie??????????原創(chuàng) CSDN?如需轉載還請通知???? 個人主頁:xiaoxie??

    2024年02月05日
    瀏覽(98)
  • 數(shù)據(jù)結構修煉第二篇:順序表和鏈表

    數(shù)據(jù)結構修煉第二篇:順序表和鏈表

    第一章 時間復雜度和空間復雜度 第二章 順序表,列表 第三章 棧和隊列 第四章 二叉樹 第五章 排序 作者:??樂言?? 簡介:??大一學生,目前在致力于c/c++/python,高數(shù)的學習,有問題盡管問我,關注后私聊! 持續(xù)更新專欄:《c進階》,《數(shù)據(jù)結構修煉》 ?? (優(yōu)質好文持

    2024年02月02日
    瀏覽(582)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包