2代码规范
This commit is contained in:
parent
d4ad5301b5
commit
b1e453a396
1 changed files with 78 additions and 91 deletions
119
ex2.cpp
119
ex2.cpp
|
@ -3,11 +3,9 @@
|
|||
#include <stdlib.h>
|
||||
#include <time.h>
|
||||
|
||||
|
||||
class Vec
|
||||
{
|
||||
private:
|
||||
|
||||
private:
|
||||
int *v;
|
||||
int LEN;
|
||||
int USED;
|
||||
|
@ -16,19 +14,18 @@ class Vec
|
|||
|
||||
void shrink();
|
||||
|
||||
public:
|
||||
|
||||
public:
|
||||
Vec(int len);
|
||||
|
||||
int get(int a);
|
||||
|
||||
void put(int a,int value);
|
||||
void put(int a, int value);
|
||||
|
||||
void swap(int a, int b);
|
||||
|
||||
int insert(int locate,int value);
|
||||
int insert(int locate, int value);
|
||||
|
||||
int del(int locate,int value);
|
||||
int del(int locate, int value);
|
||||
|
||||
int find(int value);
|
||||
|
||||
|
@ -39,18 +36,17 @@ class Vec
|
|||
int getused();
|
||||
};
|
||||
|
||||
|
||||
Vec::Vec(int len)
|
||||
{
|
||||
LEN=len*2;
|
||||
v=new int[LEN];
|
||||
USED=9;
|
||||
LEN = len * 2;
|
||||
v = new int[LEN];
|
||||
USED = 9;
|
||||
|
||||
for(int i=0;i<10;i++)
|
||||
v[i]=i+1;
|
||||
for (int i = 0; i < 10; i++)
|
||||
v[i] = i + 1;
|
||||
|
||||
for(int i=0;i<10;i++)
|
||||
swap(i,rand()%10);
|
||||
for (int i = 0; i < 10; i++)
|
||||
swap(i, rand() % 10);
|
||||
}
|
||||
|
||||
int Vec::get(int a)
|
||||
|
@ -58,9 +54,9 @@ int Vec::get(int a)
|
|||
return v[a];
|
||||
}
|
||||
|
||||
void Vec::put(int a,int value)
|
||||
void Vec::put(int a, int value)
|
||||
{
|
||||
v[a]=value;
|
||||
v[a] = value;
|
||||
}
|
||||
|
||||
void Vec::swap(int a, int b)
|
||||
|
@ -72,58 +68,58 @@ void Vec::swap(int a, int b)
|
|||
|
||||
void Vec::expand()
|
||||
{
|
||||
LEN=LEN*2;
|
||||
int *p=new int[LEN];
|
||||
LEN = LEN * 2;
|
||||
int *p = new int[LEN];
|
||||
|
||||
for(int i=0;i<=USED;i++)
|
||||
p[i]=v[i];
|
||||
for (int i = 0; i <= USED; i++)
|
||||
p[i] = v[i];
|
||||
|
||||
delete[] v;
|
||||
v=p;
|
||||
v = p;
|
||||
}
|
||||
|
||||
void Vec::shrink()
|
||||
{
|
||||
LEN=LEN>>1;
|
||||
int *p=new int[LEN];
|
||||
LEN = LEN >> 1;
|
||||
int *p = new int[LEN];
|
||||
|
||||
for(int i=0;i<=USED;i++)
|
||||
p[i]=v[i];
|
||||
for (int i = 0; i <= USED; i++)
|
||||
p[i] = v[i];
|
||||
|
||||
delete[] v;
|
||||
v=p;
|
||||
v = p;
|
||||
}
|
||||
|
||||
int Vec::insert(int locate,int value)
|
||||
int Vec::insert(int locate, int value)
|
||||
{
|
||||
if(locate<0||locate>USED)
|
||||
if (locate < 0 || locate > USED)
|
||||
return 1;
|
||||
|
||||
USED++;
|
||||
|
||||
if(USED>=LEN)
|
||||
if (USED >= LEN)
|
||||
expand();
|
||||
|
||||
for(int i=USED;i>locate;i--)
|
||||
v[i]=v[i-1];
|
||||
for (int i = USED; i > locate; i--)
|
||||
v[i] = v[i - 1];
|
||||
|
||||
v[locate]=value;
|
||||
v[locate] = value;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int Vec::del(int locate,int value)
|
||||
int Vec::del(int locate, int value)
|
||||
{
|
||||
|
||||
if(locate<0||((USED-value)<0)||((locate+value-1)>USED))
|
||||
if (locate < 0 || ((USED - value) < 0) || ((locate + value - 1) > USED))
|
||||
return 1;
|
||||
|
||||
USED=USED-value;
|
||||
USED = USED - value;
|
||||
|
||||
for(int i=locate;i<=USED;i++)
|
||||
v[i]=v[i+value];
|
||||
for (int i = locate; i <= USED; i++)
|
||||
v[i] = v[i + value];
|
||||
|
||||
if( ( (double)USED/(double)LEN )<=0.3 )
|
||||
if (((double)USED / (double)LEN) <= 0.3)
|
||||
shrink();
|
||||
|
||||
return 0;
|
||||
|
@ -132,9 +128,9 @@ int Vec::del(int locate,int value)
|
|||
int Vec::find(int value)
|
||||
{
|
||||
int i = 0;
|
||||
for(i;i<=USED;i++)
|
||||
for (i; i <= USED; i++)
|
||||
{
|
||||
if(v[i]==value)
|
||||
if (v[i] == value)
|
||||
{
|
||||
return i;
|
||||
}
|
||||
|
@ -155,64 +151,55 @@ int Vec::getused()
|
|||
|
||||
void Vec::printall()
|
||||
{
|
||||
for(int i=0;i<USED;i++)
|
||||
printf("%d\n",v[i]);
|
||||
for (int i = 0; i < USED; i++)
|
||||
printf("%d\n", v[i]);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
int main()
|
||||
{
|
||||
srand(time(NULL));
|
||||
|
||||
Vec v(10);
|
||||
int temp[10]={0};
|
||||
int temp[10] = {0};
|
||||
int flag;
|
||||
|
||||
|
||||
printf("初始化,输出数组\n");
|
||||
v.printall();
|
||||
|
||||
|
||||
while(1)
|
||||
while (1)
|
||||
{
|
||||
printf("选择操作:\n1.插入\n2.删除\n3.查找\n");
|
||||
scanf("%d",&flag);
|
||||
printf("选择操作:1.插入 2.删除 3.查找\n");
|
||||
scanf("%d", &flag);
|
||||
|
||||
switch(flag)
|
||||
switch (flag)
|
||||
{
|
||||
case 1:
|
||||
printf("输入秩与待插入数值\n");
|
||||
scanf("%d %d",&temp[0],&temp[1]);
|
||||
(v.insert(temp[0],temp[1]))?(printf("非法输入\n")):(printf("输出数组\n"));
|
||||
scanf("%d %d", &temp[0], &temp[1]);
|
||||
(v.insert(temp[0], temp[1])) ? (printf("非法输入\n")) : (printf("输出数组\n"));
|
||||
v.printall();
|
||||
break;
|
||||
|
||||
case 2:
|
||||
printf("输入秩与待删除个数\n");
|
||||
scanf("%d %d",&temp[0],&temp[1]);
|
||||
(v.del(temp[0],temp[1]))?(printf("非法输入\n")):(printf("输出数组\n"));
|
||||
scanf("%d %d", &temp[0], &temp[1]);
|
||||
(v.del(temp[0], temp[1])) ? (printf("非法输入\n")) : (printf("输出数组\n"));
|
||||
v.printall();
|
||||
break;
|
||||
|
||||
case 3:
|
||||
printf("输入要查找的数值\n");
|
||||
scanf("%d",&temp[0]);
|
||||
temp[2]=v.find(temp[0]);
|
||||
scanf("%d", &temp[0]);
|
||||
temp[2] = v.find(temp[0]);
|
||||
|
||||
(temp[2]==-1)?(printf("无此元素\n")):(printf("秩为%d \n",temp[2]));
|
||||
(temp[2] == -1) ? (printf("无此元素\n")) : (printf("秩为%d \n", temp[2]));
|
||||
break;
|
||||
|
||||
default:
|
||||
printf("返回菜单\n");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
flag=0;
|
||||
flag = 0;
|
||||
}
|
||||
return 0;
|
||||
}
|
Reference in a new issue