顺序表链表双向链表循环链表等操作

这篇博客主要介绍了考研中常见的数据结构操作,包括顺序表、链表、循环链表和双向链表。博主分享了自己编写的代码,并提醒可能存在健壮性问题,适合备考者参考学习。
摘要由CSDN通过智能技术生成

一些考研的顺序表,链表,循环列表,双向链表的操作;晚点打栈队列那些,有需要可以关注一下。
自行复制吧,自己敲的,只能说可能存在健壮性的问题。有意见欢迎指出,但是是应试考试,所以太细节的就没扣。

顺序表

代码如下:

#define Initsize 50
typedef struct {
   
	int *data;
	int length;
}sqlist;



sqlist Initlist(sqlist &l) {
   
	l.data = new int[Initsize];
	if (!l.data) {
   
		cout << "申请失败" << endl; exit(0);}
	l.length = 0;
	return l;
}//初始化

int Isempty(sqlist l) {
   
	if (l.length == NULL) {
    return 1; }
	else return 0;//判定空
}

sqlist Assignment(sqlist &l) {
   
	int i;
	for (i = 0; i < 10; i++) {
   
		l.data[i] = i + 1;
		l.length++;
	}
	return  l;
}

sqlist Export(sqlist l) {
   
	cout << "表中的数据是" << endl;
	int i ;
	for (i = 0; i < l.length; i++) {
   
		cout << l.data[i] <<' ';
		
	}
	cout << endl;
	cout << "----------------------------------";
	cout << endl;
	return l;
}

bool Listinsert(sqlist &l, int i,int e) {
   
	if (i<1 || i>l.length + 1) {
    cout << "no change"<<endl;   return false; }
	if (l.length >= Initsize) {
    cout << "no change" << endl;    return false; }
	for (int j = l.length; j >= i; j--) {
   
		l.data[j] = l.data[j - 1];
	}
	l.data[i-1] = e;
	l.length++;
	
	return true;
	
}

int Listdelete(sqlist &l, int i, int &e) {
   
	if (i<1 || i>l.length) {
    cout << "not legality" << endl; e = NULL; return false; }
	e = l.data[i - 1];
	for (int j = i; j < l.length;j++) {
   
		l.data[j - 1] = l.data[j];
	}
	l.length--;
	return e;
}
int findi(sqlist l, 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值