数据结构第一周小结

        作为一个电子的大二的学长,现在开始认真学数据结构很是愧疚啊!不过要坚持下去,自己老是半途而废,以后一周一篇技术博客。

      第一周开局不顺呀编一顺序表老出错,以下是程序:

#include<iostream>
#include<stdlib.h>
using namespace std;

const int DefaultListSize=100;

class Alist
{
	int length,maxsize,*p;
public:
	void append(int n);               //..........添加
	void insert(int m,int n);         //..........插入
	void remove(int n);               //...........删除
	void output();                   //..........输出

	Alist()
	{
		maxsize = DefaultListSize;
                length= 0;
		p=new int [DefaultListSize];
	}
	~Alist() {delete[]p;}
};

void Alist::append (int n)
{
	*p=n;
	p++;
	length++;
}

void Alist::insert (int m,int n)      //............插入
{
	int i;
	if(length>=maxsize) cout<<false;
    for(i=length-1;i>m-1;i--)
		*(p+i+1)=*(p+i);
	*(p+m)=n;
	length++;
}

void Alist::remove (int n)            //.............删除
{
    if(n>=length) cout<<false;
    int i;
	for(i=n-1;i<length;i++)
		*(p+n)=*(p+n+1);
	length--;
}

void Alist::output ()                //...........输入
{
	int m;
	for(m=0;m<length;m++)
		cout<<*(p+m)<<"    ";
	cout<<endl;
}

int main()
{
	Alist obj;
	int elem;
    int i;
   
    for(i=0;i<10;i++)
	{
        elem=rand()%100;
        obj.append (elem);
	}

	obj.output ();
	obj.insert (3,2);
	obj.output ();
	obj.remove (5);
	obj.output ();

	return 0;
}

        里面好些还是学要改进的,只能放到下周去实现了。

        下周把离散前两部分给看了。还看了些整数划归问题丫真坑!!!先把以前的数据结构看一遍再把习题给做了,come on,man.

         修改后的代码如下:

#include<iostream>
#include<stdlib.h>
using namespace std;

const int DefaultListSize=100;

class Alist
{
	int length,maxsize,*p;
public:
	void append(int n);               //..........添加
	void insert(int m,int n);         //..........插入
	void remove(int n);               //...........删除
	void output();                   //..........输出

	Alist()
	{
		maxsize = DefaultListSize;
        length= 0;
		p=new int [DefaultListSize];
	}
	~Alist() {delete []p;}
};

void Alist::append (int n)
{
	p[length]=n;
	length++;
}

void Alist::insert (int m,int n)      //............插入
{
	int i;
	if(length>=maxsize) cout<<false;
    for(i=length-1;i>m-1;i--)
		*(p+i+1)=*(p+i);
	*(p+m)=n;
	length++;
}

void Alist::remove (int n)            //.............删除
{
    if(n>=length) cout<<false;
    int i;
	for(i=n-1;i<length;i++)
		*(p+n)=*(p+n+1);
	length--;
}

void Alist::output ()                //...........输入
{
	int m;
	for(m=0;m<length;m++)
	{
		cout<<p[m]<<"    ";
	}
	cout<<endl;
}

int main()
{
	Alist obj;
	int elem;
    int i;
   
    for(i=0;i<10;i++)
	{
        elem=rand()%100;
        obj.append (elem);
	}

	obj.output ();
	obj.insert (3,2);
	obj.output ();
	obj.remove (5);
	obj.output ();

	return 0;
}


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值