数据结构c++顺序表、单链表的基本操作-查找、排序代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验1:顺序表的基本操作
实验2:单链表的基本操作
实验3:查找
实验4:排序
实验1代码及结果:
#include
using namespace std;
template
class sq_LList
{private:
int mm;
int nn;
T *v;
public:
sq_LList(){mm=0;nn=0;return;}
sq_LList(int);
void prt_sq_LList();
int flag_sq_LList();
void ins_sq_LList(int,T);
void del_sq_LList(int);
};
//建立空顺序表
template
sq_LList
{mm=m;
v=new T[mm];
nn=0;
return;
}
//顺序输出顺序表中的元素与顺序表长度template
void sq_LList
{int i;
cout<<"nn="< for(i=0;i } //检测顺序表的状态 template int sq_LList {if(nn=mn)return(-1); if(nn=0)return(0); return (1); } //在表的指定元素前插入新元素 template void sq_LList {int k; if(nn==mm) {cout<<"overflow"< if(i>nn)i=nn+1; if(i<1)i=1; for(k=nn;k>=i;k--) v[k]=v[k-1]; v[i-1]=b; nn=nn+1; return ; } //在顺序表中删除指定元素 template void sq_LList if(nn==0) {cout<<"underflow!"< return; } for(k=i;k v[k-1]=v[k]; nn=nn-1; return ; } int main() {sq_LList cout<<"第一次输出顺序表对象s1:"< s1.ins_sq_LList(0,1.5); s1.ins_sq_LList(1,2.5); s1.ins_sq_LList(4,3.5); cout<<"第二次输出顺序表对象s1:"< s1.del_sq_LList(0); s1.del_sq_LList(2); cout<<"第三次输出顺序表对象s1:"< return 0; } 运行及结果: 实验2代码 #include using namespace std; struct node{ float data; node *next; }; node *create(){ //建立单链表 node *head,*p,*s; head=new node; p=head; p->data=0; p->next=0; //表头创建完成 float newnum=0; cin>>newnum; if(newnum<0){ cout<<"未输入数据...\n";//输入负数则结束 system("pause");} while(newnum>=0 ){ //??如何用字符型作为结束标志 s=new node; //创建表中数据 s->data=newnum; p->next=s; p=s; cin>>newnum;} p->next=NULL; //最后元素指针 return(head); //返回空表头 } //插入一个结点x,将成为第i个节点 void insertnode(node *head,int i,float x){ node *s,*p; int j; s=new node; s->data=x; p=head; j=1; //查找第i个结点,由p指向 while(p!=NULL && j j++; p=p->next;} s->next=p->next; p->next=s; } //删除结点x void deletenode(node *head,float x){ node *p,*s;