算法导论动态表扩张

#include<iostream>
using namespace std;

class Table{
	public: 
	int num=0;
	int size=0;
	int *table=NULL;
	
};


void TABLE_INSERT(Table &T,int x){
	if(T.size==0){
		T.table=new int[1];
		T.size=1;
	}
	
	if(T.num==T.size){
		int *A=new int[2*T.size];
		for(int i=0;i<T.size;i++){
			A[i]=T.table[i];
		}
		delete [](T.table);
		T.table=A;
		A=NULL;
		T.size=2*T.size;
		
	}
	T.table[T.num]=x;
	T.num++;
	
}

void Print(Table &T){
	for(int i=0;i<T.num;i++){
		cout<<T.table[i]<<" ";
	}
}

void Delete(Table &T){
	delete [](T.table);
	T.table=NULL;
} 


int main(){
	Table T;
	for(int i=0;i<10;i++){
		TABLE_INSERT(T,i);
	}
	Print(T);
	Delete(T); 
	return 0;
} 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值