//数组实现线性表
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 100
typedef struct node{
int data[MAXSIZE];
int length;
} SeqList;
//删除,x为被删除的数据指针,n为删除的位置
void SeqListDelete(SeqList *p,int n,int *x){
int *p1,*p2;
if(n<1||n>=p->length){
printf("delete position error\n");
return;
}
p1=&(p->data[n]);
p2=&(p->data[p->length]);
*x=*p1;
for(;p1<p2;p1++){
*p1=*(p1+1);
}
p->length--;
}
//初始化
void SeqListInit(SeqList *p,int n){
int i;
if(n>MAXSIZE){
printf("error!\n");
return;
}
for(i=0;i<n;i++){
p->data[i]=i+1;
}
p->length=n;
}
//插入,x为插入的数据,n为数组数据段的大小
void SeqListInsert(SeqList *p,int n,int x){
int *p1,*p2;
if(n<1 || n>p->length){
printf("insert postion error\n");
return;
}
if(p->length>=MAXSIZE){
printf("no enough space\n");
return;
}
p1=&(p->data[n]);
//数组的真实大小要比length要大,这样才可以让最后一位的数据继续后移。
p2=&(p->data[p->length]);
for(;p2>=p1;p2--){
*p2=*(p2-1);
}
*p1=x;
p->length++;
}
int main(){
SeqList s1;
int i;
int n=7;
SeqListInit(&s1,n);
SeqListInsert(&s1,3,88);
int x;
SeqListDelete(&s1,3,&x);
printf("deleted x:%d\n",x);
printf("element(1~%d):\n",s1.length);
for(i=0;i<s1.length;i++){
printf("%d ",s1.data[i]);
}
printf("\n");
return 0;
}
分享到:
相关推荐
2.C-数据结构-线性表-线性表源码
2.C-数据结构-线性表-顺序表源码
数据结构-线性表.pdf
2.C-数据结构-线性表-顺序表源码
数据结构-线性表课件 比较好的课件,欢迎下载
数据结构-线性表ANSWER.html
数据结构-线性表输入-输出-插入-删除-查找.doc
### 数据结构-线性表及其实现 #### 知识点概述 本篇文章将围绕“数据结构中的线性表及其实现”这一主题展开,详细探讨线性表的基本概念、特性以及不同场景下的实现方式。文章通过举例说明了多项式表示问题,并以此...
数据结构-线性表(顺序存储)插入和删除节点的平均移动次数计算 在数据结构中,线性表是一种基本的数据结构,它可以使用顺序存储和链式存储两种方式来实现。这里,我们讨论线性表的顺序存储方式。 线性表的顺序...
数据结构-线性表-单链表的查找、插入、删除.doc
计算机软件基础:11第四章数据结构-线性表.doc
### 线性表的应用(数据结构-线性表) #### 实验目的 通过本实验,学生将能够深入了解线性表的基本结构与操作方法,并掌握如何利用这些基本知识来解决实际问题。具体而言,学生应能够: - 理解线性表的基本概念...
"数据结构-线性表-PPT" 数据结构是一门研究非数值计算的程序设计问题的学科,它研究的是计算机存储、表示、操作和保护非数值信息的方法和技术。线性表是数据结构的一种基本结构,它是一种线性结构,只有一个首结点...
### Java基础复习笔记04数据结构-线性表:深入解析与应用 #### 线性表的概念 线性表是计算机科学中最基础的数据结构之一,它由一系列相同类型的元素组成,这些元素按照一定的顺序排列,形成一个有序的序列。在逻辑...