当前位置: 首页> 娱乐> 明星 > 顺序表中插入,删除元素(数据结构作业01)

顺序表中插入,删除元素(数据结构作业01)

时间:2025/7/11 8:45:14来源:https://blog.csdn.net/2301_79431343/article/details/142259753 浏览次数:0次

顺序表中插入,删除元素 

        有一顺序遍表L为(8,2,6,9,10),编程实现:

(1)将数7插入到该表第3个位置,形成新的顺序表,并输出结果;

(2)将新的顺序表中第4个位置的元素删除。将问题分析、完整代码(关键代码需有注释),程序运行结果粘贴到下方。 

#include <stdio.h>
#include <malloc.h>
#define MaxSize 50
typedef int ElemType; typedef struct {int data[MaxSize];		//存放顺序表元素int length;					//存放顺序表的长度
} SqList;						//顺序表的类型//初始化线性表
void init_list(SqList *L) {L = (SqList *)malloc(sizeof(SqList));//分配存放线性表的空间L -> length = 0;
}//用于插入数据元素
bool insert_list(SqList *L,int i,int e) {int j;if(i < 1 || i > L -> length + 1 || L -> length == MaxSize)return false;//如果插入的位置不合法,或者没有空地方插了,就返回falsei--;for(j = L -> length; j > i; j--) {L -> data[j] = L -> data[j - 1];}//将元素往后移动,给i位置留出一个空位L -> data[i] = e;L -> length++;//顺序表长度加一return true;
}bool delete_list(SqList *L,int i,int &e) {int j;if(i < 1 || i > L -> length)return false;//如果要删的位置不合规就返回falsei--;e = L -> data[i];//用变量e保存要删的那个数的值for(j = i; j < L -> length - 1; j++) {L -> data[j] = L -> data[j + 1];}//将位置i之后的位置往前移动一个位置L -> length--;//删除一个元素后,表的长度减一return true;
}void print_list(const SqList *L) {printf("顺序表的元素为:");for(int i = 0; i < L -> length; i++) {printf("%d ",L -> data[i]);}printf("\n");
}int main() {SqList l;init_list(&l);l.data[0] = 8;l.data[1] = 2;l.data[2] = 6;l.data[3] = 9;l.data[4] = 10;l.length = 5;//初始化线性表里的值printf("初始的顺序表为:");print_list(&l);insert_list(&l,3,7);printf("将数7插入到该表第3个位置后的顺序表为:");print_list(&l);int a = 6;delete_list(&l,4,a);printf("将新的顺序表中第4个位置的元素删除后的顺序表为:");print_list(&l);}

关键字:顺序表中插入,删除元素(数据结构作业01)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: