201560140140--袁若飞--实验1:线性表的基本操作及其应用 下载本文

学号:201560140140 姓名:袁若飞

}

bool List_delete(seqlist *L,int i) //删除元素的子函数 { }

void main() {

seqlist *L; //表结构变量的定义 L=(seqlist *)malloc(sizeof(seqlist)); //为表分配空间 int i; //定义整型变量 for(i=1;i<=20;i++) //赋值给表中的元素 { }

L->data[i-1]=i;

int j; // 定义一个整型变量 if(L->listlen<=0) //空表不能删除元素 { }

if(i>L->listlen||i<=0) //删除元素不存在 { } else{ }

{ }

L->listlen--; //表长度减1 return true; //返回true

for(j=i;j<=L->listlen-1;j++) //向前批量移动元素 L->data[j-1]=L->data[j];; cout<<\删除位置错!\

return false; //返回false cout<<\下溢出错!\

return false; //返回false { }

cout<<\输入要删除的纪录号:\

cin>>i; //用户输入删除的记录 if(List_delete(L,i)) //用删除元素的子函数 { }

cout<<\删除成功!删除后的顺序表为:\\n\

for(i=1;i<=L->listlen;i++) //向前批量移动元素 { }

cout<data[i-1]<<\cout<data[i-1]<<\

for(i=1;i<=L->listlen;i++) //输出表中元素

第 5 页

学号:201560140140 姓名:袁若飞

}

bool get_element(seqlist *L,int i) //取元素的子函数 { int x;

if(i<1||i>L->listlen) //要取的元素不存在 { cout<<\下溢出错!\空表无元素 return false;} else } void main()

{ seqlist *L; //表结构变量的定义

L=(seqlist *)malloc(sizeof(seqlist)); //为表分配空间 int i,x,a; //定义三个整型变量 for(i=1;i<=20;i++) //赋值给表中的元素 { }

L->listlen=20; //定义表的长度 cout<<\查找元素前的顺序表:\\n\

for(i=1;i<=L->listlen;i++) //输出表中元素 { }

cout<data[i-1]<<\L->data[i-1]=i;

{ x=L->data[i-1]; //取出相应元素 cout<<\所取的元素\\n\

cout<

L->listlen=20; //定义表的长度 cout<<\取元素前的顺序表:\\n\

for(i=1;i<=L->listlen;i++) //输出表中元素 { }

cout<<\输入要取元素的序号:\

cin>>i; //用户输入要取元素的记录 if(get_element( L, i)) //用取元素的子函数 { cout<<\取元素成功!取元素后的顺序表为:\\n\ }

for(i=1;i<=L->listlen;i++) { }

cout<data[i-1]<<\cout<data[i-1]<<\

第 6 页

学号:201560140140 姓名:袁若飞

cout<<\输入要查元素:\

cin>>x; //用户输入查找的记录 if(a!=0)

{ cout<<\查元素成功!查元素后的顺序表为:\\n\ cout<<\取元素后的顺序表为:\\n\取元素后的顺序 a=List_locate(L,x);

cout<

for(i=1;i<=L->listlen;i++) // { cout<data[i-1]<<\

}

}

else cout<<\查无此元素成功!:\\n\

}

int List_locate(seqlist *L,int x) //{ int i; // for(i=0;ilistlen;i++) // { if(L->data[i]==x) return(i+1); // }

return(0); //}

void main() { seqlist *L; // L=(seqlist *)malloc(sizeof(seqlist)); // int i,x,a; // for(i=1;i<=20;i++) // { L->data[i-1]=i; // }

L->listlen=20; // cout<<\插入元素前的顺序表:\\n\

for(i=1;i<=L->listlen;i++) // { cout<data[i-1]<<\

}

cout<<\输入要插的元素:\

cin>>x; // cout<<\输入要插的位置:\

cin>>i; // a=List_insert(L,i,x);

输出表中元素 按值查询元素的子函数 定义一个整型变量 依次比较各个元素 找到元素X的位置返回其序号未找到则返回0值

表结构变量的定义 为表分配空间 定义三个整型变量 赋值给表中的元素 填入插入内容

定义表的长度 输出表中元素 用户输入插入的记录 用户输入插入的位置

第 7 页

学号:201560140140 姓名:袁若飞

}

int List_insert(seqlist *L,int i,int x) //插入元素的子函数 { int j; //定义一个整型变量 if(L->listlen==maxlen)

{ cout<<\溢出,不能插入!\溢出,不能插入

return 0; //返回 if(a==1)

{ cout<<\插入元素成功!:\\n\ }

else if(a==0)

cout<<\溢出,不能插入!\溢出,不能插入

cout<<\插入位置错!\

else

cout<<\插入元素后的顺序表为:\\n\

for(i=1;i<=L->listlen;i++) //输出表中元素 { cout<data[i-1]<<\}

} else if(i<1||i>L->listlen+1)

{ cout<<\插入位置错!\插入范围错 return -1 ;} //返回并结束 else }

{for(j=L->listlen-1;j>=i-1;j--) //往后移动元素 L->data[j+1]= L->data[j];

L->data[i-1]=x; //填入插入的元素 L->listlen++; //修改表长度 return 1; //返回 }

题目二:单链表的基本操作 [问题描述]

实现带头结点的单链表的建立、求长度,取元素、修改元素、插入、删除等单链表的基本操作。 [基本要求]

第 8 页