c语言线性表顺序存储实验小结,数据结构学习笔记-线性表顺序存储(C语言实现)...
寫了一天,終于將線性表的順序存儲實現了,順便惡補了一下指針內容。順序存儲,適合做查詢,鏈式存儲適合做增刪。
添加方法主要就是將線性表從后往前遍歷,依次往后挪一位,直到空出想要插入的位置,刪除方法就是將線性表從要刪除
的地方往后遍歷,依次往前挪一位。
#include #include #define MAXLENGTH 20
typedef int Eletype;
typedef struct{
Eletype data[MAXLENGTH];
int length;
}SqList;
void init(SqList *l){
l->length=0;
}
void addData(SqList *l){
l->length=5;
for(int i=0;ilength;i++){
l->data[i]=i+1;
}
}
void addsData(SqList *l){
l->length=5;
for(int i=0;ilength;i++){
l->data[i]=i*2;
}
}
void getEle(SqList l,int index,Eletype *e){
if(l.length<1){
printf("該線性表為空\n");
return ;
}else{
if(index<=l.length&&index>0){
*e=l.data[index-1];
}else{
printf("所取的位置不在線性表范圍內\n");
return ;
}
}
}
void display(SqList l,int size){
Eletype e;
printf("線性表中數據為:\n");
for(int i=1;i<=size;i++){
getEle(l,i,&e);
printf("%d ",e);
}
printf("\n");
}
void insertEle(SqList *l,int index,Eletype e){
if(l->lengthlength&&index>0){
for(int i=l->length-1;i>=index-1;i--){
l->data[i+1]=l->data[i];
}
l->data[index-1]=e;
l->length++;
}else if((index-1)==l->length){
l->data[index-1]=e;
l->length++;
}else{
printf("所插入的位置不在線性表范圍內\n");
return ;
}
}else{
printf("所要插入的線性表已滿\n");
return ;
}
}
void deleteEle(SqList *l,int index,Eletype *e){
if(l->length<1){
printf("該線性表為空\n");
return ;
}else{
if(index>l->length||index<1){
printf("所要刪除的數據不在線性表范圍內\n");
}else{
*e=l->data[index-1];
for(int i=index-1;ilength;i++){
l->data[i]=l->data[i+1];
}
l->length--;
}
}
}
int hnh(SqList l,Eletype e){
int result;
for(int i=0;ilength;
q++;
insertEle(a,q,e);
continue;
}else{
continue;
}
}
}
int main()
{
SqList l,s;
Eletype e;
init(&l);
addData(&l);
addsData(&s);
display(l,5);
display(s,5);
hb(&l,s);
display(l,8);
}
總結
以上是生活随笔為你收集整理的c语言线性表顺序存储实验小结,数据结构学习笔记-线性表顺序存储(C语言实现)...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux+nfs配置开机启动,linu
- 下一篇: c语言遍历exe的目录,如何用纯C获取一