中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

上饒商城網(wǎng)站建設百度識圖在線使用

上饒商城網(wǎng)站建設,百度識圖在線使用,網(wǎng)站運營與管理論文,中國建設人才網(wǎng)官網(wǎng)登錄入口2022作者:努力學習的大一在校計算機專業(yè)學生,熱愛學習和創(chuàng)作。目前在學習和分享:算法、數(shù)據(jù)結構、Java等相關知識。博主主頁: 是瑤瑤子啦所屬專欄: 【數(shù)據(jù)結構|刷題專欄】:該專欄專注于數(shù)據(jù)結構知識,持續(xù)更新&a…

在這里插入圖片描述

  • 作者:努力學習的大一在校計算機專業(yè)學生,熱愛學習和創(chuàng)作。目前在學習和分享:算法、數(shù)據(jù)結構、Java等相關知識。
  • 博主主頁: @是瑤瑤子啦
  • 所屬專欄: 【數(shù)據(jù)結構|刷題專欄】:該專欄專注于數(shù)據(jù)結構知識,持續(xù)更新,每一篇內(nèi)容優(yōu)質(zhì),淺顯易懂,不失深度!該專欄題目較為基礎經(jīng)典,旨在幫助學習數(shù)據(jù)結構的同學更好地、熟練地掌握如何使用相應的數(shù)據(jù)結構進行相關操作和解題
  • 近期目標:寫好專欄的每一篇文章

前言

不要被代碼長度勸退了!都是很簡單的操作,目的在于熟練掌握和使用數(shù)據(jù)結構!下面是用C語言描述的數(shù)據(jù)結構。嚴格意義上來說數(shù)據(jù)結構是門單獨的課,用什么語言描述不是很重要,主要是學習如何構造相應的數(shù)據(jù)結構并且實現(xiàn)其相應操作。
題目后面的?對應相應的難度(三個星其實也不是很難)

目錄

    • 前言
  • 一、順序表的合并(?)
  • 二、城市定位(???)
  • 三、線性表的減法(???)

一、順序表的合并(?)

【習題描述】
已知順序表A中的元素按值遞增存放,而順序表B中的元素按值遞減存放。試設計一個高效算法,將B中的所有元素插入到A中(假設A中的空間足夠大),仍使A為遞增順序表。

基本要求及提示

(1) 首先創(chuàng)建兩個順序表A,B。

(2) 設計一個符合上述要求的MergeSeqList(A, B)函數(shù)。

(3) 要求程序通過一個主菜單進行控制,在主菜單界面通過選擇菜單項的序號來調(diào)用各功能函數(shù)。

#define _CRT_SECURE_NO_WARNINGS 1//常用系統(tǒng)頭文件
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>//常用的宏定義符號常量
#define ERROR 0
#define OK 1
#define FALSE 0
#define TRUE 1
#define MAXSIZE 100
int resultArray[MAXSIZE];
typedef struct {int data[MAXSIZE];int length;
} Seqlist;
int menu_select() // 菜單驅(qū)動程序
{int sn; // sn用于接收菜單選項printf("\n按任意鍵進入主菜單!\n");printf("\n   *** 順序表合并系統(tǒng) ***\n"); // 顯示菜單printf("==============================\n");printf("   1、創(chuàng)建A順序表\n");printf("   2、創(chuàng)建B順序表\n");printf("   3、合并并輸出該順序表\n");printf("   0、退出\n");printf("==============================\n");printf("  請選擇0--3:  ");for (;;) // 菜單功能選擇{scanf("%d", &sn);getchar();if (sn < 0 || sn > 3) // 判斷菜單選項是否屬于合理范圍:0--3printf("\n\t 輸入選擇錯誤,請重新選擇 0--3: ");elsebreak;}return sn;
}void SetA(Seqlist* A) {int a, i;A->length = 0;printf("請輸入要創(chuàng)建的元素的個數(shù):");scanf("%d", &a);for (i = 0; i < a; i++) {printf("請輸入第%d個元素", i + 1);scanf("%d", &A->data[i]);A->length++;}}void SetB(Seqlist* B) {int a, i;B->length = 0;printf("請輸入要創(chuàng)建的元素的個數(shù):");scanf("%d", &a);for (i = 0; i < a; i++) {printf("請輸入第%d個元素", i + 1);scanf("%d", &B->data[i]);B->length++;}
}
void reverse(Seqlist* B) {int left = 0, right = B->length - 1;while (left < right) {int t = B->data[right];B->data[right] = B->data[left];B->data[left] = t;left++;right--;}
}
void merge(Seqlist* A, Seqlist* B) {//先把B逆序reverse(B);int i = 0, j = 0, x = 0;;while (i < A->length && j < B->length) {if (A->data[i] < B->data[j]) {resultArray[x++] = A->data[i++];}else {resultArray[x++] = B->data[j++];}}while (i < A->length) {resultArray[x++] = A->data[i++];}while (j < B->length) {resultArray[x++] = B->data[j++];}for (int m = 0; m < A->length + B->length; m++) {A->data[m] = resultArray[m];}A->length = A->length + B->length;
}void main() {Seqlist A;Seqlist B;for (;;) // 菜單驅(qū)動程序:無限循環(huán)菜單功能選擇與調(diào)用相應功能函數(shù),直到選擇0 退出{switch (menu_select()) // 調(diào)用菜單函數(shù),按返回值選擇功能函數(shù){case 1:printf(" 創(chuàng)建A表\n");SetA(&A);break;case 2:printf(" 創(chuàng)建B表\n");SetB(&B);break;case 3:printf(" 合并A、B表\n");merge(&A, &B);printf("合并后的A順序表如下\n");for (int i = 0; i < A.length; i++) {printf("%d", A.data[i]);printf("\n");}break;case 0:printf(" 再見!\n"); // 退出系統(tǒng)return;} // switch語句結束} // for循環(huán)結束
} // main()函數(shù)結束

二、城市定位(???)

【習題描述】
將若干城市的信息存入一個帶頭結點的單鏈表,結點中的城市信息包括城市名、城市的位置坐標。

(1) 給定一個城市名,返回其位置坐標;

(2) 給定一個位置坐標P和一個距離D,返回所有與P的 距離小于等于D的城市。

(3) 要求程序通過一個主菜單進行控制,在主菜單界面通過選擇菜單項的序號來調(diào)用各功能函數(shù)。

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>//常用的宏定義符號常量
#define ERROR 0		                                          
#define OK 1
#define FALSE 0
#define TRUE 1//請在此填寫數(shù)據(jù)類型說明
typedef struct City_List {char name[10];float x;float y;struct City_List* next;
} City_List, * Lhead;int menu_select()	//菜單驅(qū)動程序
{int sn;      //sn用于接收菜單選項printf("城市管理系統(tǒng)\n");		//顯示菜單printf("==============================\n");printf("1、創(chuàng)建城市鏈表\n");printf("2、根據(jù)城市名查詢城市\(zhòng)n");printf("3、根據(jù)中心坐標距離查詢城市\(zhòng)n");printf("0、退出\n");printf("==============================\n");printf("請選擇0--3:");for (;;)		//菜單功能選擇{scanf("%d", &sn);getchar();if (sn < 0 || sn > 3)          //判斷菜單選項是否屬于合理范圍:0--4printf("輸入選擇錯誤,請重新選擇 0--5:");elsebreak;}return sn;
}/*TODO:添加城市信息功能:添加城市信息到鏈表中,城市信息分為城市名稱和城市坐標城市名稱對應結構體City_List 的name,坐標對應結構體City_List 的x,yprintf("請輸入城市名\n") 輸入一個字符串,作為城市名;printf("請輸入城市坐標\n") 輸入兩個浮點型f數(shù)字,中間用一個字符隔開;與Create_List函數(shù)聯(lián)動之后的效果如下:輸入END推出,輸入其余值繼續(xù)1請輸入城市名LA請輸入城市坐標1.00 2.00輸入END推出,輸入其余值繼續(xù)1請輸入城市名BA請輸入城市坐標1.00 3.00輸入END推出,輸入其余值繼續(xù)END參數(shù):City_List *Lhead 是需要操作的鏈表返回值: 無*/
void Insert(City_List* Lhead) {//創(chuàng)造新節(jié)點City_List* newNode = (City_List*)malloc(sizeof(City_List));printf("請輸入城市名\n");scanf("%s", newNode->name);printf("請輸入城市坐標\n");scanf("%f %f", &newNode->x, &newNode->y);//使用頭插法,把該新節(jié)點插入到鏈表中newNode->next = Lhead->next;Lhead->next = newNode;
}/*TODO:創(chuàng)建鏈表功能:創(chuàng)建鏈表,添加元素時提示:printf("輸入END推出,輸入其余值繼續(xù)\n");如果錄入END,停止添加;錄入其他字符,則調(diào)用Insert方法,插入元素參數(shù):City_List *Lhead 是需要操作的鏈表返回值: 無*/
void Create_List(City_List* Lhead) {while (1) {printf("輸入END推出,輸入其余值繼續(xù)\n");char name[10];const char* t = "END";scanf("%s", name);if (!strcmp(name, t)) {break;}else {Insert(Lhead);}}
}/*TODO:搜索城市信息功能:通過城市姓名,搜索城市信息,提示:printf("請輸入您要搜索的城市名\n");如果如果找到對應的城市信息,則打印城市坐標printf("城市坐標為%.2f,%.2f\n")未找到城市信息,提示printf("你要搜索的城市不存在\n");比如:請輸入您要搜索的城市名AA城市坐標為1.00,2.00請輸入您要搜索的城市名BA你要搜索的城市不存在參數(shù):City_List *Lhead 是需要操作的鏈表返回值: 無*/
void Find_City(City_List* Lhead) {printf("請輸入您要搜索的城市名\n");//臨時存儲用戶輸入的城市名char name[10];scanf("%s", name);City_List* p = Lhead;//指針,負責遍歷該單鏈表int flag = 0;//標記變量while ((p = p->next) != NULL) {if (!strcmp(p->name, name)) {flag = 1;printf("城市坐標為%.2f,%.2f\n", p->x, p->y);}}if (flag == 0) {printf("你要搜索的城市不存在\n");}
}/*TODO:查詢距離范圍內(nèi)城市功能:給定一個位置坐標P和一個距離D,返回所有與P的 距離小于等于D的城市。printf("請輸入中心坐標\n");printf("請輸入距離\n");計算距離判斷:((x-Lhead->x)*(x-Lhead->x)+(y-Lhead->y)*(y-Lhead->y)<=distance*distance)如果找到符合要求的城市,打印出所有城市信息printf("城市名為%s\n");printf("城市坐標為%.2f,%.2f\n");如已有三座城市:LA(1.00,2.00) BA(1.00,3.00) CA(10.00,83.00),市中心(10.00,8.00)想查詢距離市中心距離12以內(nèi)的城市:請輸入中心坐標10.00 8.00請輸入距離12城市名為LA城市坐標為1.00,2.00城市名為BA城市坐標為1.00,3.00參數(shù):City_List *Lhead 是需要操作的鏈表返回值: 無*/
void Find_City_Distance(City_List* Lhead) {//臨時存儲用戶輸入的中心坐標和距離float x = 0, y = 0;int d = 0;printf("請輸入中心坐標\n");scanf("%f %f", &x, &y);printf("請輸入距離\n");scanf("%d", &d);City_List* p = Lhead;//指針,負責遍歷該單鏈表while ((p = p->next) != NULL) {if ((x - p->x) * (x - p->x) + (y - p->y) * (y - p->y) <= d * d) {printf("城市名為%s\n",p->name);printf("城市坐標為%.2f,%.2f\n",p->x,p->y);}}
}int main() {//聲明一個全局數(shù)據(jù)變量,并將其初始化City_List* Lhead;Lhead = (City_List*)malloc(sizeof(City_List));Lhead->next = NULL;for (;;)						// 菜單驅(qū)動程序:無限循環(huán)菜單功能選擇與調(diào)用相應功能函數(shù),直到選擇0 退出{switch (menu_select())	 // 調(diào)用菜單函數(shù),按返回值選擇功能函數(shù){case 1:printf("創(chuàng)建城市鏈表\n");//功能1的函數(shù)調(diào)用Create_List(Lhead);break;case 2:printf("根據(jù)城市名查詢城市\(zhòng)n");//功能2的函數(shù)調(diào)用Find_City(Lhead);break;case 3:printf("根據(jù)中心坐標距離查詢城市\(zhòng)n");//功能3的函數(shù)調(diào)用Find_City_Distance(Lhead);break;case 0:printf("再見!\n");				//退出系統(tǒng)return 0;} // switch語句結束 } // for循環(huán)結束 return 0;
} // main()函數(shù)結束

三、線性表的減法(???)

【習題描述】 問題描述:

利用線性表的基本操作,實現(xiàn)在線性表A中刪除線性表B中出現(xiàn)的元素。

基本要求及提示:

(1) 首先創(chuàng)建兩個線性表表。

(2) 依次檢查線性表B中的每個元素看它是否在線性表A中,若在,則將其刪除。

(3) 要求程序通過一個主菜單進行控制,在主菜單界面通過選擇菜單項的序號來調(diào)用各功能函數(shù)。

難度:???

#include<stdio.h>
#include<stdlib.h>#define ERROR 0
#define OK 1
#define TURE 1
#define FAULE -1#define Max_size 100
#define ElemType int//結構體定義
typedef struct {ElemType elem[Max_size];ElemType last;
} Seqlist;//函數(shù)聲明
int menu_select();
int Add_A_List(Seqlist *);
int Del_A_List(Seqlist *);
int Add_B_List(Seqlist *);
int Del_B_List(Seqlist *);
int Auto_Del_List(Seqlist *, Seqlist *);
int printA(Seqlist *);
int printB(Seqlist);// main()函數(shù)
int main() {Seqlist ListA, ListB;ListA.last = -1; //注意應提前賦值ListB.last = -1;for (;;) {switch (menu_select()) {case 1:printf("增加線性表A中的元素\n");Add_A_List(&ListA);break;case 2:printf("刪除線性表A中的元素\n");Del_A_List(&ListA);break;case 3:printf("增加線性表B中的元素\n");Add_B_List(&ListB);break;case 4:printf("刪除線性表B中的元素\n");Del_B_List(&ListB);break;case 5:printf("計算機自動刪除A中存在B中的元素\n");Auto_Del_List(&ListA, &ListB);break;case 6:printf("顯示出A中的元素\n");printA(&ListA);break;case 7:printf("顯示出B中的元素\n");printB(ListB);break;case 0:printf("歡迎下次使用\n");return 0;}}
} // main()函數(shù)結束//菜單驅(qū)動程序
int menu_select() {int sn;printf("===============================\n");printf("1、增加線性表A中的元素\n");printf("2、刪除線性表A中的元素\n");printf("3、增加線性表B中的元素\n");printf("4、刪除線性表B中的元素\n");printf("5、計算機自動刪除A中存在B中的元素\n");printf("6、顯示出A中的元素\n");printf("7、顯示出B中的元素\n");printf("0、退出程序\n");printf("=================================\n");printf("輸入0--7\n");for (;;) {scanf("%d", &sn);getchar();if (sn < 0 || sn > 7)printf("\n 輸入錯誤,重新選擇 0--7S: ");elsebreak;}return sn;
}
//增加線性表A中的元素
int Add_A_List(Seqlist *ListA) {char flag = 'Y';while (flag == 'y' || flag == 'Y') {if (ListA->last >= Max_size - 1) {printf("線性表A空間已滿!\n\n");return ERROR;} elseListA->last++;printf("需要加入的數(shù)字為:\n");scanf("%d", &ListA->elem[ListA->last]);printf("\n");printf("繼續(xù)輸入嗎?(y/n)");getchar();scanf("%c", &flag);printf("\n");}return OK;
}
//增加線性表B中的元素
int Add_B_List(Seqlist *ListB) {char flag = 'Y';while (flag == 'y' || flag == 'Y') {if (ListB->last >= Max_size - 1) {printf("線性表B空間已滿!\n\n");return ERROR;} elseListB->last++;printf("需要加入的數(shù)字為:\n");scanf("%d", &ListB->elem[ListB->last]);printf("\n");printf("繼續(xù)輸入嗎?(y/n)");getchar();scanf("%c", &flag);printf("\n");}return OK;
}
//刪除線性表A中的元素
int Del_A_List(Seqlist *ListA) {int i = 0, n;char flag = 'Y';if (ListA->last == -1) {printf("線性表為空!\n\n");return FAULE;} else {printf("請輸入你要刪除的元素\n");scanf("%d", &n);while (n != ListA->elem[i] && i <= ListA->last)i++;if (i <= ListA->last) {printf("要刪除的數(shù)字為%d\n", ListA->elem[i]);printf("你確定要刪除這個通訊者的信息嗎?(y/n) ");getchar();scanf("%c", &flag);if (flag == 'y' || flag == 'Y')for (i = i + 1; i <= ListA->last; i++)ListA->elem[i - 1] = ListA->elem[i];ListA->last--;return OK;} else {printf("元素不存在!\n\n");return FAULE;}}}
//刪除線性表B中的元素
int Del_B_List(Seqlist *ListB) {int i, n;char flag;if (ListB->last == -1) {printf("線性表為空!\n\n");return FAULE;} else {printf("請輸入你要刪除的元素\n");scanf("%d", &n);while (n != ListB->elem[i] && i <= ListB->last)i++;if (i <= ListB->last) {printf("要刪除的數(shù)字為%d\n", ListB->elem[i]);printf("你確定要刪除這個通訊者的信息嗎?(y/n) ");getchar();scanf("%c", &flag);if (flag == 'y' || flag == 'Y')for (i = n + 1; i <= ListB->last; i++)ListB->elem[i - 1] = ListB->elem[i];ListB->last--;return OK;} else {printf("元素不存在!\n\n");return FAULE;}}
}
//計算機自動刪除A中存在B中的元素
/*TODO:性表B中的每個元素看它是否在線性表A中,若在,則將線性表A中的元素刪除。!注意:禁止在驗證時使用輸出函數(shù)顯示*/
int Auto_Del_List(Seqlist *ListA, Seqlist *ListB) {//TODO:for (int i = 0; i <= ListB->last; i++) {for (int j = 0; j <= ListA->last; j++) {if (ListA->elem[j] == ListB->elem[i]) {for (int x = j; x <= ListA->last - 1; x++) {ListA->elem[x] = ListA->elem[x + 1];}ListA->last--;}}}return 1;
}
//打印
int printA(Seqlist *ListA) {int i;if (ListA->last == -1) {printf("線性表A為空\n");return ERROR;}for (i = 0; i <= ListA->last; i++) {printf("%4d", ListA->elem[i]);}printf("\n");return OK;
}
//打印
int printB(Seqlist ListB) {int j;if (ListB.last == -1) {printf("線性表B為空\n");return ERROR;}for (j = 0; j <= ListB.last; j++) {printf("%4d", ListB.elem[j]);}printf("\n");return OK;
}

在這里插入圖片描述

  • Java島冒險記【從小白到大佬之路】
  • LeetCode每日一題–進擊大廠
  • 算法
  • 數(shù)據(jù)結構|刷題專欄
http://www.risenshineclean.com/news/39044.html

相關文章:

  • 創(chuàng)立一個網(wǎng)站得多少錢整站優(yōu)化關鍵詞推廣
  • 萬戶網(wǎng)絡騙局泉州百度推廣排名優(yōu)化
  • 體現(xiàn)網(wǎng)站特色全球熱門網(wǎng)站排名
  • 建材網(wǎng)站建設 南寧sem代運營托管公司
  • 中山制作企業(yè)網(wǎng)站廣州網(wǎng)站制作服務
  • 公司介紹網(wǎng)站怎么做只要做好關鍵詞優(yōu)化
  • 商城小程序定制公司搜索引擎優(yōu)化的重要性
  • 收錄網(wǎng)站是怎么做的網(wǎng)絡營銷首先要
  • 織夢網(wǎng)站在css中怎樣做導航關鍵詞優(yōu)化公司靠譜推薦
  • 2019做網(wǎng)站需要營業(yè)執(zhí)照嗎2022最好的百度seo
  • 網(wǎng)頁源代碼搜索關鍵字如何seo推廣
  • php網(wǎng)站開發(fā)過程免費下載b站視頻軟件
  • 云南昆明做網(wǎng)站西安競價托管公司
  • 做網(wǎng)站需要什么基礎百度開發(fā)者平臺
  • 網(wǎng)站彈窗客服怎樣搭建自己的網(wǎng)站
  • 鹽城微網(wǎng)站建設廣州王牌seo
  • 開發(fā)一個網(wǎng)站的步驟推廣軟件賺錢的app
  • 廣州移動 網(wǎng)站設計如何在各大平臺推廣
  • 天津建設工程信息網(wǎng)如何注冊網(wǎng)站優(yōu)化推廣招聘
  • 網(wǎng)站搭建搜外友鏈
  • 如何開網(wǎng)店無貨源不需要投資河北seo技術
  • 在設計賺錢的網(wǎng)站有哪些做網(wǎng)站需要多少錢
  • 廣東省農(nóng)業(yè)農(nóng)村廳官方網(wǎng)站成都網(wǎng)站快速開發(fā)
  • 建站源碼程序惠州seo外包服務
  • 自己的網(wǎng)站怎么開培訓心得體會范文大全2000字
  • 外貿(mào)必看網(wǎng)站湖南百度seo
  • 做3d效果的網(wǎng)站亞馬遜關鍵詞排名提升
  • 松江品劃做網(wǎng)站云浮新增確診病例30例
  • 易企網(wǎng)站建設滁州網(wǎng)站seo
  • 系統(tǒng)優(yōu)化的方法知識點外貿(mào)建站優(yōu)化