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

數據結構:兩個順序表合并算法

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

1.問題描述

? ? ? ? 將a,b兩個有序順序表進行合并,放在c順序表當中,并且要保證順序表c仍然有序。

2.解題思路

? ? ? ? 因為a,b兩個順序表是有序的,所有可以從前往后一起查找a,b當中最小的一個數值,放入到c中。

????????如果遍歷到最后,a遍歷完了,b沒有遍歷完,就把b剩下的放入c中;反之,b遍a沒有遍歷完,就把a剩下的放入c中。文章來源地址http://www.zghlxwxcb.cn/news/detail-716995.html

3.實現代碼

#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100

typedef int ElemType;

typedef struct {    //順序表的結構
	ElemType *data;
	int length;
	int listsize;
}List;

int InitList(List *L)    //初始化順序表
{
	L->data = (ElemType*)malloc(MAXSIZE*sizeof(ElemType));
	if(!(L->data))
		exit(0);
	L->length=0;
	L->listsize=MAXSIZE;
	return 1;
}

void CreatList(List *L)    //創(chuàng)建一個順序表
{
	
	int i;
	printf("請輸入測試的數據總數:\n");
	scanf("%d",&L->length);
	printf("請輸入測試的數據:\n");
	for(i=0;i<L->length;i++)
		scanf("%d",&L->data[i]);
}

void Printf(List *L)    //打印順序表中的值
{
	int i;
	if(L->length==0)
	{
		printf("順序表為空!");
		return ;
	}
	else
		for(i=0;i<L->length;i++)
			printf("%d ",L->data[i]);
	printf("\n"); 
}

void MergeList(List *a,List *b,List *c){        //合并兩個順序表放入c中

	int i=0;
	int j=0;
	int k=0;
	int La_len=a->length;
	int Lb_len=b->length;
	c->length=a->length+b->length;
	while((i<La_len)&&(j<Lb_len)){
		if(a->data[i]<=b->data[j])    //如果a當前的值小于b
		{
			c->data[k]=a->data[i];    //c放入當前a的值
			i++;                    //a,c都往后移一位
			k++;
			
		}
		else{                        //如果a當前值大于等于b
			c->data[k]=b->data[j];       //c放入當前b的值
			j++;                          //b,c都往后移一位
			k++;

		}
	}
	while(i<La_len){            //如果b遍歷完,a還沒遍歷完,把a剩余的全放入c中
		c->data[k]=a->data[i];
		  k++;
		  i++;
	}
	while(j<Lb_len){            //如果a遍歷完,b還沒遍歷完,把b剩余的全放入c中
		c->data[k]=b->data[j];
		  k++;
		  j++;
	}
}
	
int main()
{
	List *L1;
	List  *L2;
	List  *L3;
	L1 = (List*) malloc(sizeof(List));
	L2 = (List*) malloc(sizeof(List));
	L3 = (List*) malloc(sizeof(List));
	InitList(L1);
	InitList(L2);
	CreatList(L1);
	CreatList(L2);
	printf("輸入順序表A:");  
	Printf(L1);
	printf("輸入順序表B:");
	Printf(L2);
	L3->data = (ElemType*)malloc(MAXSIZE*sizeof(ElemType));
	MergeList(L1,L2,L3);
	getchar();
	printf("輸入順序表C:");
	Printf(L3);
	getchar();
	return 0;
}

 

到了這里,關于數據結構:兩個順序表合并算法的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

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

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

相關文章

  • 【數據結構與算法】二、線性表的順序表示【硬核】

    【數據結構與算法】二、線性表的順序表示【硬核】

    圖書表的順序存儲結構類型定義: 在調用函數的過程中,當形參為引用類型時,實參和形參占用了相同的空間 2.4.1 線性表的基本操作: 2.4.2 線性表L的初始化 2.4.3 銷毀和清空線性表L 2.4.4 求線性表L的長度以及判斷線性表L是否為空 2.4.5 順序表的取值(根據位置i獲取相應位置

    2023年04月26日
    瀏覽(29)
  • 【每日算法 && 數據結構(C++)】—— 03 | 合并兩個有序數組(解題思路、流程圖、代碼片段)

    【每日算法 && 數據結構(C++)】—— 03 | 合并兩個有序數組(解題思路、流程圖、代碼片段)

    An inch of time is an inch of gold, but you can’t buy that inch of time with an inch of gold. An inch of time is an inch of gold, but you can\\\'t buy that inch of time with an inch of gold 給你兩個有序數組,請將兩個數組進行合并,并且合并后的數組也必須有序 這個題目要求將兩個有序數組合并成一個有序數組。在數

    2024年02月11日
    瀏覽(21)
  • 數據結構2.2,將兩個非遞減的有序鏈表合并為一個非遞增的有序鏈表,要求結果鏈表仍使用原來兩個鏈表的存儲空間,不占用其他的存儲空間。表中允許有重復的數據。

    數據結構2.2,將兩個非遞減的有序鏈表合并為一個非遞增的有序鏈表,要求結果鏈表仍使用原來兩個鏈表的存儲空間,不占用其他的存儲空間。表中允許有重復的數據。

    大概思路:1.先寫出建立鏈表的函數(creatlist):分配頭節(jié)點,尾指針置空。 2.寫出插入節(jié)點的代碼函數:申請一片空間存放要插入的節(jié)點,把新插入的節(jié)點置空,令指向鏈表的頭節(jié)點的下一個指針指向該節(jié)點,在把該指針指向新插入的節(jié)點。用if函數寫出當輸入的指小于零時

    2024年02月05日
    瀏覽(69)
  • 【數據結構和算法初階(C語言)】復雜鏈表(隨機指針,隨機鏈表的復制)題目詳解+鏈表順序表結尾

    【數據結構和算法初階(C語言)】復雜鏈表(隨機指針,隨機鏈表的復制)題目詳解+鏈表順序表結尾

    目錄 ?1.隨機鏈表的復制 1.2題目描述? 1.3題目分析 1.4解題: 2.順序表和鏈表對比 2.1cpu高速緩存利用率 3.結語 一個長度為? n ?的鏈表,每個節(jié)點包含一個額外增加的隨機指針? random ? 該指針可以指向鏈表中的任何節(jié)點或空節(jié)點。? ? ? ? 構造這個鏈表的? 深拷貝 。?深拷貝

    2024年03月10日
    瀏覽(94)
  • 【數據結構】順序表的定義

    【數據結構】順序表的定義

    ??個人主頁:豌豆射手^ ??歡迎 ??點贊?評論?收藏 ??收錄專欄:數據結構 ??希望本文對您有所裨益,如有不足之處,歡迎在評論區(qū)提出指正,讓我們共同學習、交流進步! 在數據結構的世界里,順序表是一種常見且基礎的線性數據結構。它以其簡潔、直觀的特性,廣

    2024年04月08日
    瀏覽(25)
  • 【(數據結構)- 順序表的實現】

    【(數據結構)- 順序表的實現】

    先來看兩張圖片 數據結構是由“數據”和“結構”兩詞組合?來。 什么是數據? 常見的數值1、2、3、4…、教務系統(tǒng)里保存的用戶信息(姓名、性別、年齡、學歷等等)、網頁里肉眼可以看到的信息(文字、圖片、視頻等等),這些都是數據 什么是結構? 當我們想要使用大

    2024年02月07日
    瀏覽(26)
  • 數據結構--順序表的查找

    數據結構--順序表的查找

    目標: GetElem(L,i):按位查找操作。獲取表L中第i個位置的元素的值。 代碼實現 時間復雜度 O(1) 由于順序表的各個數據元素在內存中連續(xù)存放,因此可以根據起始地址和數據元素大小立即找到第i個元素——“隨機存取”特性 目標: LocateElem(Le):按值查找操作。在表L中查找具有給

    2024年02月11日
    瀏覽(28)
  • 【數據結構】--順序表的實現

    【數據結構】--順序表的實現

    什么是順序表?順序表(SeqList)是線性表中的一類。而線性表是n個具有相同特性的數據元素的有限序列。線性表是一種在實際中廣泛使用的數據結構,常見的線性表:順序表、鏈表、字符串、棧、隊列... 注意:線性表在邏輯上是線性結構,也就是說是一條連續(xù)的直線。但在

    2024年04月17日
    瀏覽(23)
  • 【數據結構】順序表的學習

    【數據結構】順序表的學習

    前言:在之前我們學習了C語言的各種各樣的語法,因此我們今天開始學習數據結構這一個模塊,因此我們就從第一個部分來開始學習\\\" 順序表 \\\"。 ?? 博主CSDN主頁:衛(wèi)衛(wèi)衛(wèi)的個人主頁 ?? ?? 專欄分類:數據結構 ?? ??代碼倉庫:衛(wèi)衛(wèi)周大胖的學習日記?? ??關注博主和博主一起學

    2024年02月05日
    瀏覽(19)
  • 數據結構:順序表的奧秘

    數據結構:順序表的奧秘

    ??個人名片: ??作者簡介: 一名樂于分享在學習道路上收獲的大二在校生 ????個人主頁??:GOTXX ??個人WeChat:ILXOXVJE ??本文由GOTXX原創(chuàng),首發(fā)CSDN?????? ??系列專欄:零基礎學習C語言----- 數據結構的學習之路 ??每日一句:如果沒有特別幸運,那就請?zhí)貏e努力!??

    2024年03月10日
    瀏覽(17)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包