(1)順序表的操作 ① 輸入一組整型元素序列,建立線性表的順序儲存結構。 ② 實現該線性表的遍歷。 ③ 在該順序表中查詢某一元素,查詢成功顯示查詢元素,否則顯示查詢失敗。 ④ 在該順序表中刪除或插入指
(1)順序表的操作
① 輸入一組整型元素序列,建立線性表的順序儲存結構。
② 實現該線性表的遍歷。
③ 在該順序表中查詢某一元素,查詢成功顯示查詢元素,否則顯示查詢失敗。
④ 在該順序表中刪除或插入指定元素。
⑤ 建立兩個按值遞增有序的順序表,將他們合併成一個按值遞增有序的順序表。
#include<stdio.h>
#include<stdlib.h>
#define SIZE 20
#define MORE 10
typedef struct{
int *base; //儲存空間基址
int length; //當前長度
int listsize; //當前儲存容量
}SqList;
void InitList(SqList &L){
//構造線性表
L.base=(int *)malloc(SIZE*sizeof(int));
if(!L.base)
exit(0);
L.listsize=SIZE;
scanf("%d",&L.length);
for(int i=0;i<L.length;i++)
scanf("%d",&L.base[i]);
}
void Output(SqList L){
//遍歷
for(int i=0;i<L.length;i++)
printf("%5d",L.base[i]);
printf("\n");
}
void Locate(SqList L,int &e){
//查詢
int i;
for(i=0;i<=L.length;i++){
if(L.base[i]==e){
printf("%d\n",L.base[i]);
break;
}
}
if(i>L.length)
printf("查詢失敗!");
}
void Delete(SqList &L,int i,int &e){
//刪除第i個元素
int j;
if(i<1||i>L.length) exit(0);
e=L.base[i-1];
for(j=i-1;j<L.length;j++){
L.base[j]=L.base[j+1];
}
L.length--;
}
void Insert(SqList &L,int i,int e){
//插入
SqList q,p;
int j;
if(i<1||i>L.length+1)
exit(0);
if(L.length>=L.listsize){
int *newbase=(int *)realloc(L.base,(L.listsize+MORE)*sizeof(int));
if(!newbase) exit(0);
L.base=newbase;
L.listsize+=MORE;
}
for(j=L.length-1;j>=i-1;j--){
L.base[j+1]=L.base[j];
}
L.base[i-1]=e;
L.length++;
}
void Merge(SqList La,SqList Lb,SqList &Lc){
//合併
Lc.length=La.length+Lb.length;
Lc.base=(int *)malloc(Lc.listsize*sizeof(int));
int i,j,k;
i=0;j=0;k=0;
while(i<La.length&&j<Lb.length){
if(La.base[i]<=Lb.base[j]){
Lc.base[k++]=La.base[i++];
}
else
Lc.base[k++]=Lb.base[j++];
}
while(i<La.length){
Lc.base[k++]=La.base[i++];
}
while(j<Lb.length){
Lc.base[k++]=Lb.base[j++];
}
}
int main(){
SqList La,Lb,Lc;
int d,k,e;
printf("輸入表的長度:");
InitList(La);
printf("輸入要查詢的數:");
scanf("%d",&d) ;
Locate(La,d);
printf("要刪除第幾個數?");
scanf("%d",&k);
Delete(La,k,e);
printf("刪除的數為:%d\n",e);
Output(La);
int a,b;
printf("輸入要插入的位置和數:");
scanf("%d%d",&a,&b);
Insert(La,a,b);
Output(La);
printf("輸入另一個表的長度:");
InitList(Lb);
Merge(La,Lb,Lc);
Output(Lc);
return 0;
}
相關推薦
(1)順序表的操作 ① 輸入一組整型元素序列,建立線性表的順序儲存結構。 ② 實現該線性表的遍歷。 ③ 在該順序表中查詢某一元素,查詢成功顯示查詢元素,否則顯示查詢失敗。 ④ 在該順序表中刪除或插入指
(1)順序表的操作 ① 輸入一組整型元素序列,建立線性表的順序儲存結構。 ② 實現該線性表的遍歷。 ③ 在該順序表中查詢某一元素,查詢成功顯示查詢元素,否則顯示查詢失敗。 ④ 在該順序表中刪除或插入指定元素。 ⑤ 建立兩個按值遞增有序的順序表,將他們合併成一個按值遞增有序的
git操作總結(1):常用操作流程之SSH、上傳、下載和改名字
一、配置SSH免金鑰登陸 1.生成金鑰 直接回車3-5次 ssh-keygen -t rsa -C "這裡換上你的郵箱" 2.在指定的儲存路徑下會生成2個名為id_rsa和id_rsa.pub的檔案 3.將id_rsa.pub檔案,把內容拷貝到Git的SSH金鑰配置上 4.g
Android元件系列(1):自動完成輸入內容的元件(AutoCompleteTextView )
本文為原創,如需轉載,請註明作者和出處,謝謝! AutoCompleteTextView 和 EditText 元件類似,都可以輸入文字。但 AutoCompleteText
com4j學習(1):Java操作Visio之Java讀取Visio圖形關係並存儲到XML檔案中
前言: MicroSoft Visio是微軟旗下一款非常非常出色的繪圖軟體,可以用來繪製各種各樣的圖形(如流程圖、UML、工程圖等)。現在有這樣一個需求,我們想讀取visio中的圖形的形狀、屬性、連線關係等到程式中(java、c++、python都行),這樣我
Python3快速入門——(1)python變數和輸入輸出函式
1、Python語言Python 是一種解釋型、面向物件、動態資料型別的高階程式設計語言Python 是一種解釋型語言: 這意味著開發過程中沒有了編譯這個環節。類似於PHP和Perl語言。Python
java演算法知識點解析(1):字串操作
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Scanner; public class main { static
OpenCV計算機視覺學習(1)——影象基本操作(影象視訊讀取,ROI區域擷取,常用cv函式解釋)
1,計算機眼中的影象 我們開啟經典的 Lena圖片,看看計算機是如何看待圖片的: 我們點選圖中的一個小格子,發現計算機會將其分為R,G,B三種通道。每個通道分別由一堆0~256之間的數字組成,那OpenCV如何讀取,處理圖片呢,我們下面詳細學習。 2,影象的載入,顯示和儲存 我們看
平日小演算法筆記 (1) 字首和求遞增三元組
2018.4.3 遇到一個很有意思的題目 題目:遞增三元組 給定三個整數陣列 A = [A1, A2, … AN], B = [B1, B2, … BN], C = [C1, C2, … CN], 請你統計有多少個三元組(i, j, k) 滿足: 1. 1 &l
js去掉一組整型陣列重複的值
<script> var data = [1,1,2,2,3,4,4,5,6,7,7,8]; var length = data.length; var datas = [];
Python學習筆記(6) -- 字元轉數字、字串轉整型(char2num、str2int)
原文連結: http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014317852443934a86aa5bb5ea47fbbd5f35282b3313350
資料結構實驗一:(1)(順序表)線性表的各種操作SqList
#include<iostream> #include<malloc.h> #include<cstdio> #define MAXSIZE 10 using namespace std; //typedef struct SqList
(十二)Hibernate中的多表操作(1):單向多對一
art 保存 int gen round t對象 情況 映射文件 拋出異常 由“多”方可知“一”方的信息,比如多個員工使用同一棟公寓,員工可以知道公寓的信息,而公寓無法知道員工的信息。 案例一: pojo類 public class Department {
Spring boot集成Redis(1)—進行增加,更新,查詢,批量刪除等操作
緩存 獲取數據 prope XML ray end 序列 www pin 前言:最近工作中使用到了redis緩存,故分享一點自己總結的東西,這篇文章使用的是StringRedisTemplate進行學習,這裏值的說的是,(1)StringRedisTemplate在進行批量
編寫程式,在一非遞減的順序表L中,刪除所有值相等的多餘元素。要求時間複雜度O(n),空間複雜度為O(1)
翠花上程式碼: Status delExcrescentValue(SeqList &S){ int flag = 0,val = S.elem[0];//記錄值不等的下標 //printf("%d\n",S.elem[0]); for(int i = 1;i
Oracle資料庫,當前時間轉為星期的語句和查詢某一欄位轉為星期顯示的一種方法。
1、當前時間的星期 select to_char(sysdate,'day') from dual ; 2、指定欄位的星期 select decode (substr(to_char(t.欄位,'d','NLS_DATE_LANGUAGE
給出n個學生的考試成績表,每條記錄由學號、姓名和分數和名次組成,設計演算法完成下列操作: (1)設計一個顯示對學生資訊操作的選單函式如下所示: *************************
給出n個學生的考試成績表,每條記錄由學號、姓名和分數和名次組成,設計演算法完成下列操作: (1)設計一個顯示對學生資訊操作的選單函式如下所示: ************************* 1、錄
資料結構(1)順序查詢之C語言實現
#include <stdio.h> #include <stdlib.h> /** 順序查詢: 無序; */ void mainSS() { int num[]={0,1,2,38,99,56,67,87,55,26}; int f
經典筆試題練習之陣列查詢(1)第一個重複元素
《劍指OFFER名題精講2版》P39 題目侷限性: 輸入陣列的長度0-200,陣列內每個元素都在0-200之間。 解決思路: 使陣列的值與陣列下標一一對應。 書中原始碼: #include<stdio.h> #include<stdlib.h
查詢陣列中重複的唯一元素+時間複雜度O(n)+空間複雜度O(1)
這是我BIGO前端面試時,面試官給我出的一道題,題目是長度為N的陣列,元素大小範圍在[1,N-1],只有一個重複的元素,用O(n)的時間複雜度和O(1)的空間複雜度找出來這個重複的元素, 大致思路 1、因為總共有N個數,每個數的範圍是1到N-1,只有一個重複的數,所以這些數肯定是連續的 2
使用PyMongo操作MongoDB的基本實踐(1)——刪除,查詢,更新
db.drop_collection("collection_name") 刪除整個collection import pymongo client = pymongo.MongoClient