//已知順序表L的長度為n,試撰寫演算法實作在順序表中洗掉值為elem的資料元素
//(其中n與elem從鍵盤輸入)
# include <iostream>
# include <stdio.h>
# include <stdlib.h>
using namespace std;
const maxn = 1000 + 10;
typedef struct node
{
int *arr;
int length;
int maxsize;
}sqlist;
void createsqlist(sqlist &L)
{
L.arr = (int*)malloc(maxn * sizeof(int));
L.length = 0;
L.maxsize = maxn;
}
void insqlist(sqlist& L, int n)
{
int *p;
printf("請依次輸入數字創建一個順序表:\n");
for(p = L.arr; p<L.arr + n; p++)
{
scanf("%d", p);
}
L.length = n;
}
void outsqlist(sqlist L)
{
int *p;
printf("順序表的元素為:\n");
for(p = L.arr; p<L.arr+L.length; p++)
{
printf("%d ", *p);
}
printf("\n");
}
void deletesqlist(sqlist& L, int elem)
{
int i = 0;
while(i<L.length && L.arr[i] != elem)
{
i++;
}
for(int j = i+1; j<L.length; j++)
{
if(L.arr[j] != elem)
{
L.arr[i++] = L.arr[j];
}
}
L.length = i;
}
int main()
{
//加速c++輸入輸出流
ios::sync_with_stdio(false);
cin.tie(0);
sqlist L;
createsqlist(L);
int n, elem;
printf("請輸入n個元素: \n");
scanf("%d", &n);
insqlist(L, n);
printf("請輸入洗掉的元素值:\n");
scanf("%d", &elem);
deletesqlist(L, elem);
outsqlist(L);
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/250703.html
標籤:其他
上一篇:android 升級 4.1后出現java.lang.NoSuchMethodError解決辦法【mac 版】
下一篇:JavaPoet使用攻略
