順序表應用2:多餘元素刪除之建表演算法
Problem Description
一個長度不超過10000資料的順序表,可能存在著一些值相同的“多餘”資料元素(型別為整型),編寫一個程式將“多餘”的資料元素從順序表中刪除,使該表由一個“非純表”(值相同的元素在表中可能有多個)變成一個“純表”(值相同的元素在表中只保留第一個)。
要求:
1、必須先定義線性表的結構與操作函式,在主函式中藉助該定義與操作函式呼叫實現問題功能;
2、本題的目標是熟悉在順序表原表空間基礎上建新表的演算法,要在原順序表空間的基礎上完成完成刪除,建表過程不得開闢新的表空間;
3、不得采用原表元素移位刪除的方式。
Input
第一行輸入整數n,代表下面有n行輸入;
之後輸入n行,每行先輸入整數m,之後輸入m個資料,代表對應順序表的每個元素。
Output
輸出有n行,為每個順序表刪除多餘元素後的結果
Sample Input
4 5 6 9 6 8 9 3 5 5 5 5 9 8 7 6 5 10 1 2 3 4 5 5 4 2 1 3
Sample Output
6 9 8 5 9 8 7 6 5 1 2 3 4 5
Hint
Source
這個題的時間和空間都卡的很緊,所以用第一個中的刪除的會超時和超空間,所以每次在加入之前都判斷下陣列中是否存在,如果存在那麼就不加入,相對應的把下表提前。
#include<iostream>
#include<stdio.h>
#define MaxSize 100000
using namespace std;
typedef int element;
typedef struct node{
int data[MaxSize];
int last;
}list;
void init(list &L,int b){
int i;
for(i = 0 ; i < b;i++){
L.data[i] = 0;
}
L.last = b;
}
void CreatDel(list &L){
int i,j;
scanf("%d",&L.data[0]);
for(i = 1 ;i < L.last;i++){
scanf("%d",&L.data[i]);
//printf("%d \n",L.data[i]);
for(j = 0; j < i;j++){
if(L.data[j] == L.data[i]){
i--;
L.last--;
}
}
}
}
void output(list &L){
int i;
for(i = 0 ; i < L.last - 1;i++){
printf("%d ",L.data[i]);
}
printf("%d\n",L.data[i]);
}
int main(){
list L;
int a,b;
scanf("%d",&a);
while(a--){
scanf("%d",&b);
init(L,b);
CreatDel(L);
output(L);
}
return 0;
}
相關文章
- 順序表應用1:多餘元素刪除之移位演算法演算法
- 順序表應用3:元素位置互換之移位演算法演算法
- 順序表應用4:元素位置互換之逆置演算法演算法
- 第八週 專案2-順序表演算法演算法
- 順序表應用5:有序順序表歸併
- 順序表應用6:有序順序表查詢
- 工作293:調節刪除順序刪除
- 第三週專案2-建設“順序表”演算法庫演算法
- Linux刪除多餘核心Linux
- 第2章 順序表及其順序儲存
- HashMap 之元素刪除HashMap
- oracle刪除多餘重複行Oracle
- 刪除多餘的屬性 xmlns=""XML
- C++ 順序容器的刪除操作C++
- 調整陣列元素順序演算法陣列演算法
- 演算法提高 11-2刪除重複元素演算法
- Centos 6.9 刪除多餘的核心版本CentOS
- Linux多ip地址如何刪除多餘ipLinux
- 刪除順序表L中下標為p(0≤p≤length-1)的元素,成功返回1,否則返回0,並將被刪除元素的值賦給e
- 如何刪除win10所有內建應用_windows10刪除內建應用的方法Win10Windows
- 順序表應用8:最大子段和之動態規劃法動態規劃
- 資料結構_順序表_順序表的初始化、插入、刪除、修改、查詢列印(基於C語言實現)資料結構C語言
- 順序表
- win10怎麼刪除右鍵多餘選項 win10刪除右鍵多餘選項的方法Win10
- mySql刪除多個表 刪除多個欄位的SQLMySql
- CSS 元素層疊順序CSS
- 同一個元素中有多個class,優先順序
- c語言順序棧常規插入刪除操作C語言
- 如何刪除MacBook Pro多餘專注模式呢?Mac模式
- MacBook Pro如何刪除多餘的專注模式Mac模式
- OGG-extract程式對應的多餘trail檔案的刪除AI
- win10刪除多餘啟動項怎麼操作 win10如何刪除多餘的開機啟動項Win10
- 第二章-線性表-順序表(初始化、迴圈、插入、刪除、查詢、清空)
- source insight 儲存時刪除多餘空格,去除多餘空格 space tab鍵
- Laravel admin 多圖七牛擴充套件,非同步、可拖拽順序、可刪除Laravel套件非同步
- 靜態順序表和動態順序表 對比
- J2SE-刪除List集合元素
- MacBook Pro刪除多餘專注模式詳細教程Mac模式