课 程 设 计
课程:程序
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
基础
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
目:顺序
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
9
班级:信管09级
姓名:李宁
学号:2009082263
设计时间:2010年06月28日——2010年07月09日
成绩:
指导教师:楼建华
一、题目
题目
顺序表9
结构
结构体(动态数组,尾元下标)指针
回传方式
函数值
操作
初始化,输出,插入,删除,查找,求表长,取元素,替换,清空
二、概要设计
1.设计要点
⑴
⑵
⑶
2.数据结构
⑴逻辑结构:(a1,a2,a3,…,an)
⑵存储结构:结构体(动态数组,尾元下标)指针
SeqList L
L->last
L->max
L->a
L->a[0]
L->a[1]
...
L->a[L->last]
...
const int init_n=3,inc_n=2;
typedef struct{
int n,max;//n是尾元下标,max是最大表长
datatype *a;//定义动态数组
}node,*list;
3.基本操作(声明函数)
list Init()/*初始化*/
void Out(list L)/*输出*/
list Insert(list L,int I, datatype x)/*插入*/
list Delete(list L,int i)/*删除*/
int Location(list L,int x)/*查找*/
int (list L);/*表长*/
datatype (list L,int i);/*取元素*/
void (list L,int i,datatype x);/*替换*/
void (list L);/*清空*/
三、源程序(附测试数据)
#include
using namespace std;
typedef int datatype;
const int init_n=3,inc_n=2;
typedef struct{
int n,max;//n是尾元下标,max是最大表长
datatype *a;//定义动态数组
}node,*list;
list Init(){/*初始化*/
list L=new node;
L->a=(datatype*)malloc(init_n*sizeof(datatype));
if(!L->a){cout<<"内存不足!";exit(0);}
L->max=init_n;
L->n=-1;
return L;/*成功,置空表*/
}
void Out(list L){/*输出*/
int i;
cout<<"(";
if(L->n>-1)cout<a[0];/*输出首元*/
for(i=1;i<=L->n;i++)
cout<<","<a[i];/*输出其它元素*/
cout<<")";
}
int Ins(list L,int i,datatype x){/*插入*/
int j;
if(i<1||i>L->n+2){cout<<"位置错!";
return 0;}
if(L->n+1==L->max){
L->max+=inc_n;
L->a=(datatype*)realloc(L->a,L->max*sizeof(datatype));
if(!L->a){cout<<"内存不足!";return 0;}
}
for(j=L->n++;j>=i-1;j--)
L->a[j+1]=L->a[j];/*向后移动数据*/
L->a[i-1]=x;
return 1;
}
int Del(list L,int i){/*删除*/
int j;
if(i<1||i>L->n+1){
cout<<"无此插入位置!"; return 0;
}
for(j=i;j<=L->n;j++)
L->a[j-1]=L->a[j];/*前移数据*/
L->n--;
return 1;/*修正尾元下标,成功*/
}
int Location(list L,datatype x){/*查找*/
int i;
for(i=0;i<=L->n;i++)
if(L->a[i]==x)return i+1;/*成功,返回序号*/
return 0;/*失败,返回约定值*/
}
int Length(list L){//求表长
int i,j=0;
if(!L->n)return 0;
for(i=-1;in;i++)if(L->a[i])j++;
return j;
}
datatype Get(list L,int i){//取元素
int j;datatype k;
while(L->n>-1&&jn;j++)k=L->a[i-1];
return k;
}
void Replace(list L,int i,datatype x){//替换
int j;
while(L->a&&jn;j++)L->a[i-1]=x;
}
void Clear(list L){//清空
if(!L->n){cout<<"表空!";return;}
else L->n=-1;
}
void main(){/*测试*/
list L=Init();
cout<<"L=";
Out(L);
cout<<"\n\n用插入生成顺序表:(1,5,3)";
if(!Ins(L,1,5)||!Ins(L,1,1)||!Ins(L,3,3))return;
cout<<"\nL=";
Out(L);
cout<<"\n表长="<
总结
初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf
PAGE
1