《王道数据结构》

2.2.2顺序表上基本操作的实现

插入:

#include <stdio.h>
#define MaxSize 10 //定义最大长度
typedef struct{
	int data[MaxSize];  //用静态的"数组"存放数据结构
	int length;			//定义顺序表的当前长度
}SqList;				//定义顺序表的类型

//基本操作--初始化顺序表
void InitList(SqList &L){
	for(int i=0;i<MaxSize;i++){
		L.data[i]=0;			
	}
	L.length=0;			
}

void ListInsert(SqList &L,int i,int e){
	for(int j=L.length;j>=i;j--){//将最后一位赋值给他的下一位
			L.data[j]=L.data[j-1];
	}
	L.data[i-1]=e;
	L.length++;
}

int main(){
	SqList L;
	InitList(L);
	//添加元素
	ListInsert(L,3,3);
	return 0;
}

可对插入数据是否合法进行判断。

删除操作:

#include<stdio.h>
#define MaxSize 10
typedef struct{
	int data[MaxSize];
	int length;
}SqList;

bool ListDelete(SqList &L,int i,int &e){
	if(i<1||i>L.length)
		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 true;
}

void InitList(SqList &L){
	for(int i=0;i<MaxSize;i++){
		L.data[i]=0;			
	}
	L.length=0;			
}

int main(){
	SqList L;
	InitList(L);
	//插入数据
	int e=-1;
	if(ListDelete(L,3,e)){
		printf("删除第三个元素,删除元素的值为=%d\n",e);
	}else{
		printf("所要删除的索引不合法");
	}
	return 0;
}

 

 

按位查找

 

注:

用指针访问数据时每次取几个 字节,根据指针的类型所决定

这就能解释为什么用malloc要强转指针的原因。

 判断两个结果类型是否相等必须分开判断不能直接判断()

 

 

按值查找:

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值