//数组实现线性表
#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;
}
分享到:
相关推荐
java基础笔记数据结构-线性表,详细描述了线性表的原理及其实现方式,基础数据结构。
数据结构-线性表-PPT
数据结构-线性表.pdf
数据结构-线性表课件 比较好的课件,欢迎下载
数据结构-线性表的基本使用
数据结构-线性表ANSWER.html
算法与数据结构-线性表答案 定义线性表节点的结构.doc
数据结构-线性表输入-输出-插入-删除-查找.doc
数据结构-线性表.ppt该文档详细且完整,值得借鉴下载使用,欢迎下载使用,有问题可以第一时间联系作者~
Java基础复习笔记04数据结构-线性表。
数据结构-线性表-单链表的查找、插入、删除.doc
数据结构-线性表(顺序存储)插入和删除节点的平均移动次数计算 定义线性表节点的结构.pdf
计算机软件基础:11第四章数据结构-线性表.doc
数据结构-线性表(1).ppt该文档详细且完整,值得借鉴下载使用,欢迎下载使用,有问题可以第一时间联系作者~
数据结构-线性表(2).ppt该文档详细且完整,值得借鉴下载使用,欢迎下载使用,有问题可以第一时间联系作者~
数据结构--线性表--思维导图.pdf