数据结构学习中测试代码

magicfat / 2024-01-22 / 原文

线性表

顺序表的一些基本性质



//#define print(x)	std::cout <<x << std::endl
//#define get(x)	std::cin>>x
#include <iostream>
#include <fstream>

using namespace std;


#define Initsize 100
#
typedef struct
{
	int* data;
	int Maxsize, length;


}SeqList;
int main()
{
	SeqList l;
	l.data = (int*)malloc(sizeof(int) * Initsize);
	l.length = 0;
	l.Maxsize = 100;
	for (int i = 0; i <=30; i++)
	{
		l.data[i] = i;
		l.length++;
	}
	
	for (int i = 0; i < l.length; i++)
	{
		std::cout << l.data[i]<<std::endl;
		std::cout << &(l.data[i]) << std::endl;
		std::cout << l.length << std::endl;
		std::cout << "------" << std::endl;
	}

}

顺序表插入

int ListInsert(SeqList &l, int num,int loc)
{
	if (loc<0 || loc>l.length + 1) return false;
	for (int i = l.length; i > loc; i--)
	{
		l.data[i + 1] = l.data[i];
	}
	l.data[loc] = num;
	l.length++;
}

指针方式

int ListInsert1(SeqList& l, int num, int loc)
{
	if (loc<0 || loc>l.length + 1) return false;
	int *q = &l.data[loc];
	for (int *i = &l.data[l.length-1]; i >q; i--)
	{
		*(i + 1) = *i;
	}
	*q = num;
	l.length++;
}