广东工业大学数据结构实验报告(12届)(精选五篇)

时间:2019-05-12 08:38:57下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《广东工业大学数据结构实验报告(12届)》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《广东工业大学数据结构实验报告(12届)》。

第一篇:广东工业大学数据结构实验报告(12届)

广东工业大学数据结构实验报告(1)

学院:自动化

专业:12级物联网3班

姓名:xxx 学号:xxx 老师:张小波

实验日期:2014年6月21日

实验地点:实二203 成绩评定:

实验题目:求一个正整数的各位数字之和

一、实验目的 求一个正整数的各位数字之和。

二、实验软件环境

1.计算机每人一台。2.软件:Visual Studio 2012

三、实验内容

#include int func(int num){ int s=0;do {

s+=num%10;

num/=10;} while(num);return(s);} void main(){ int n;printf(“输入一个整数:”);scanf(“%d”,&n);printf(“各位数字之和:%dn”,func(n));printf(“n”);}

四、实验结果和分析

当输入一个整数的时候,得出的是该整数的所有数字的和

五、实验心得体会

本实验过程中,感觉能用简单的方法实现程序就应该用简单的,一开始我用了多个for循环,感觉没必要,就用了do-while循环,因此保持程序的简洁,精悍是最应该的,过于冗杂的程序不仅臃肿,而且难以分析,分享。

广东工业大学数据结构实验报告(2)

学院:自动化

专业:12级物联网3班

姓名:xxx 学号:xxx 老师:张小波

实验日期:2014年6月21日

实验地点:实二203 成绩评定:

实验题目:求两个多项式的相加运算

一、实验目的 熟悉并学会使用多项式的表示方法以及计算方法

二、实验软件环境

1.计算机每人一台。2.软件:Visual Studio 2012

三、实验内容

#include #include #define MAX 20 typedef struct { double coef;

int exp;

} PolyArray[MAX];typedef struct pnode //定义单链表结点类型 { double coef;

int exp;} PolyNode;void DispPoly(PolyNode *L)//输出多项式 { bool first=true;

PolyNode *p=L->next;while(p!=NULL)//多项式最多项数

//定义存放多项式的数组类型

//系数 //指数

//系数 //指数

struct pnode *next;//first为true表示是第一项

{

} printf(“n”);} void DestroyList(PolyNode *&L)//销毁单链表 { PolyNode *p=L,*q=p->next;while(q!=NULL){

} free(p);} void CreateListR(PolyNode *&L,PolyArray a,int n)//尾插法建表 { PolyNode *s,*r;int i;L=(PolyNode *)malloc(sizeof(PolyNode));//创建头结点

L->next=NULL;r=L;

{

} r->next=NULL;} void Sort(PolyNode *&head){ PolyNode *p=head->next,*q,*r;if(p!=NULL)

if(first)

first=false;printf(“+”);printf(“%g”,p->coef);printf(“%gx”,p->coef);printf(“%gx^%d”,p->coef,p->exp);else if(p->coef>0)if(p->exp==0)else if(p->exp==1)else p=p->next;free(p);p=q;q=p->next;

//r始终指向终端结点,开始时指向头结点

for(i=0;icoef=a[i].coef;s->exp=a[i].exp;r->next=s;r=s;//终端结点next域置为NULL

//按exp域递减排序

//将*s插入*r之后

//若原单链表中有一个或以上的数据结点

{

} } void Add(PolyNode *ha,PolyNode *hb,PolyNode *&hc)//求两有序集合的并 { PolyNode *pa=ha->next,*pb=hb->next,*s,*tc;double c;hc=(PolyNode *)malloc(sizeof(PolyNode));tc=hc;while(pa!=NULL && pb!=NULL){

r=p->next;p=r;

//r保存*p结点后继结点的指针

p->next=NULL;while(p!=NULL){

} r=p->next;q=head;//构造只含一个数据结点的有序表

//r保存*p结点后继结点的指针

while(q->next!=NULL && q->next->exp>p->exp)q=q->next;

//在有序表中找插入*p的前驱结点*q p->next=q->next;//将*p插入到*q之后 q->next=p;p=r;

//创建头结点

if(pa->exp>pb->exp){

} else if(pa->exp

exp){

} else {

c=pa->coef+pb->coef;if(c!=0){

s=(PolyNode *)malloc(sizeof(PolyNode));//复制结点 s->exp=pa->exp;s->coef=c;tc->next=s;tc=s;//系数之和不为0时创建新结点 //pa->exp=pb->exp s=(PolyNode *)malloc(sizeof(PolyNode));//复制结点 s->exp=pb->exp;s->coef=pb->coef;tc->next=s;tc=s;pb=pb->next;s=(PolyNode *)malloc(sizeof(PolyNode));//复制结点 s->exp=pa->exp;s->coef=pa->coef;tc->next=s;tc=s;pa=pa->next;

}

} } pa=pa->next;pb=pb->next;if(pb!=NULL)pa=pb;//复制余下的结点

while(pa!=NULL){

} tc->next=NULL;} void main(){ PolyNode *ha,*hb,*hc;PolyArray a={{1.2,0},{2.5,1},{3.2,3},{-2.5,5}};PolyArray b={{-1.2,0},{2.5,1},{3.2,3},{2.5,5},{5.4,10}};CreateListR(ha,a,4);CreateListR(hb,b,5);printf(“原多项式A: ”);DispPoly(ha);printf(“原多项式B: ”);DispPoly(hb);Sort(ha);Sort(hb);printf(“有序多项式A: ”);DispPoly(ha);printf(“有序多项式B: ”);DispPoly(hb);Add(ha,hb,hc);printf(“多项式相加: ”);DispPoly(hc);DestroyList(ha);DestroyList(hb);DestroyList(hc);} s=(PolyNode *)malloc(sizeof(PolyNode));//复制结点 s->exp=pa->exp;s->coef=pa->coef;tc->next=s;tc=s;pa=pa->next;

四、实验结果和分析

五、实验心得体会

本实验过程中,我进一步了解了单链表的各种操作以及对应的函数的使用方法,以及学会熟练调用函数来实现,比较深刻地体会到了使用单链表的好处和方便。

广东工业大学数据结构实验报告(3)

学院:自动化

专业:12级物联网3班

姓名:xxx

学号:xxx 老师:张小波

实验日期:2014年6月21日

实验地点:实二203 成绩评定:

实验题目:病人看病模拟程序

一、实验目的掌握顺序栈以及循环队列的使用。

二、实验软件环境

1.计算机每人一台。2.软件:Visual Studio 2012

三、实验内容

#include #include typedef struct qnode { int data;struct qnode *next;} QNode;{ QNode *front,*rear;} QuType;{ QNode *p,*q;p=qu->front;if(p!=NULL)

{

//链队节点类型

typedef struct

//链队类型

void Destroyqueue(QuType *&qu)//释放链队

//若链队不空

q=p->next;while(q!=NULL)

//释放队中所有的节点

{

free(p);

p=q;

q=q->next;

}

free(p);} free(qu);

//释放链队节点

} void SeeDoctor(){ int sel,flag=1,find,no;QuType *qu;QNode *p;qu=(QuType *)malloc(sizeof(QuType));//创建空队 qu->front=qu->rear=NULL;while(flag==1)

//循环执行

{ printf(“1:排队 2:就诊 3:查看排队 4.不再排队,余下依次就诊 5:下班

scanf(”%d“,&sel);

switch(sel)

{

case 1: printf(” >>输入病历号:“);

do

{

scanf(”%d“,&no);

find=0;

p=qu->front;

while(p!=NULL &&!find)

{

if(p->data==no)

find=1;

else

p=p->next;

}

if(find)

printf(” >>输入的病历号重复,重新输入:“);

} while(find==1);

p=(QNode *)malloc(sizeof(QNode));//创建节点

p->data=no;p->next=NULL;

if(qu->rear==NULL)

//第一个病人排队

qu->front=qu->rear=p;

else

{

qu->rear->next=p;qu->rear=p;//将*p节点入队

}

请选择:”);

break;

//队空 //队不空

{ p=qu->front;printf(“ >>病人%d就诊n”,p->data);if(qu->rear==p)

//只有一个病人排队的情况

qu->front=qu->rear=NULL;printf(“ >>没有排队的病人!n”);

case 2: if(qu->front==NULL)

else

else qu->front=p->next;free(p);break;

//队空 //队不空 printf(“ >>没有排列的病人!n”);

}

case 3:if(qu->front==NULL)

else

{

} break;

p=qu->front;printf(“ >>排队病人:”);while(p!=NULL){

} printf(“n”);printf(“%d ”,p->data);p=p->next;case 4:if(qu->front==NULL)

//队空 //队不空 printf(“ >>没有排列的病人!n”);

else

{

} Destroyqueue(qu);flag=0;break;

//队不空

printf(“ >>请排队的病人明天就医!n”);

//释放链队 //退出 p=qu->front;printf(“ >>病人按以下顺序就诊:”);while(p!=NULL){

} printf(“n”);printf(“%d ”,p->data);p=p->next;

case 5:if(qu->front!=NULL)

} void main(){ SeeDoctor();}

} flag=0;

break;

//退出

//释放链队 Destroyqueue(qu);}

四、实验结果和分析

五、实验心得体会

本实验过程中,要求考虑的情况较多,在循环队列中使用指针的使用过程中对空的这种情况还是欠缺考虑,所以以后在进行循环队列使用中务必要记得考虑对空的情况。

广东工业大学数据结构实验报告(4)

学院:自动化

专业:12级物联网3班

姓名:xxx 学号:xxx

老师:张小波

实验日期:2014年6月21日

实验地点:实二203 成绩评定:

实验题目:文本串加密和解密程序

一、实验目的掌握顺序栈以及循环队列的使用。

二、实验软件环境

1.计算机每人一台。2.软件:Visual Studio 2012

三、实验内容

lgo4-1.cpp #include #define MaxSize 100 typedef struct { char data[MaxSize];} SqString;void StrAssign(SqString &s,char cstr[])//s为引用型参数 {

} void StrCopy(SqString &s,SqString t){

} bool StrEqual(SqString s,SqString t)

//最多的字符个数

//定义可容纳MaxSize个字符的空间

int length;//标记当前实际串长

int i;s.data[i]=cstr[i];for(i=0;cstr[i]!='';i++)s.length=i;

//s为引用型参数

int i;s.data[i]=t.data[i];for(i=0;i

{ bool same=true;

//长度不相等时返回0 int i;if(s.length!=t.length)

} int StrLength(SqString s){ return s.length;} SqString Concat(SqString s,SqString t){ SqString str;int i;str.length=s.length+t.length;for(i=0;i

} SqString SubStr(SqString s,int i,int j){ SqString str;int k;str.length=0;if(i<=0 || i>s.length || j<0 || i+j-1>s.length)

return str;

//参数不正确时返回空串

for(k=i-1;k

str.length=j;return str;} SqString InsStr(SqString s1,int i,SqString s2){ int j;SqString str;str.length=0;if(i<=0 || i>s1.length+1)//参数不正确时返回空串

return str;

//将s1.data[0..i-2]复制到str

//将s2.data[0..s2.length-1]复制到str str.data[j]=s1.data[j];for(j=0;j

for(j=0;j

same=false;for(i=0;i

if(s.data[i]!=t.data[i])//有一个对应字符不相同时返回0 { } same=false;break;else return same;str.data[i]=s.data[i];str.data[s.length+i]=t.data[i];for(i=0;i

//将s.data[i..i+j]复制到str str.data[k-i+1]=s.data[k];

str.data[i+j-1]=s2.data[j];

//将s1.data[i-1..s1.length-1]复制到str str.data[s2.length+j]=s1.data[j];for(j=i-1;js.length || i+j>s.length+1)//参数不正确时返回空串

return str;

//将s.data[0..i-2]复制到str str.data[k]=s.data[k];str.data[k-j]=s.data[k];for(k=0;k

for(k=i+j-1;ks.length || i+j-1>s.length)//参数不正确时返回空串

return str;

//将s.data[0..i-2]复制到str //将t.data[0..t.length-1]复制到str str.data[k]=s.data[k];str.data[i+k-1]=t.data[k];str.data[t.length+k-j]=s.data[k];for(k=0;k

} } int i;for(i=0;i0)

//文件名:exp4-4.cpp

#include #include #define MaxSize 100 typedef struct { char data[MaxSize];//串长 int length;} SqString;extern void StrAssign(SqString &,char []);//在algo4-1.cpp文件中 extern void DispStr(SqString);SqString A,B;{ int i=0,j;SqString q;while(i

} q.length=p.length;return q;} SqString UnEncrypt(SqString q){ int i=0,j;SqString p;while(i

} p.length=q.length;return p;} void main(){ SqString p,q;int ok=1;

//全局串

SqString EnCrypt(SqString p)for(j=0;p.data[i]!=A.data[j];j++);if(j>=p.length)

else i++;

//在A串中未找到p.data[i]字母 //在A串中找到p.data[i]字母 q.data[i]=p.data[i];q.data[i]=B.data[j];

for(j=0;q.data[i]!=B.data[j];j++);if(j>=q.length)

else i++;

//在B串中未找到q.data[i]字母

p.data[i]=q.data[i];//在B串中找到q.data[i]字母

p.data[i]=A.data[j];

StrAssign(A,“abcdefghijklmnopqrstuvwxyz”);//建立A串

StrAssign(B,“ngzqtcobmuhelkpdawxfyivrsj”);//建立B串

char str[MaxSize];printf(“n”);printf(“输入原文串:”);gets(str);

//获取用户输入的原文串

StrAssign(p,str);

//建立p串

printf(“加密解密如下:n”);printf(“ 原文串:”);DispStr(p);q=EnCrypt(p);

//p串加密产生q串

//q串解密产生p串 printf(“ 加密串:”);DispStr(q);p=UnEncrypt(q);

printf(“n”);} printf(“ 解密串:”);DispStr(p);

四、实验结果和分析

五、实验心得体会

串加密实际上就是对每个字符进行一定的算法,而这个算法只有你自己知道,其他人不知道。通过该算法,我们可以进行加密与解密工作。新技能get。

广东工业大学数据结构实验报告(5)

学院:自动化

专业:12级物联网3班

姓名:xxx

学号:xxx 老师:张小波

实验日期:2014年6月21日

实验地点:实二203 成绩评定:

实验题目:求解n皇后问题

一、实验目的掌握递归应用

二、实验软件环境

1.计算机每人一台。2.软件:Visual Studio 2012

三、实验内容

#include #include const int N=20;//最多皇后个数

int q[N];//存放各皇后所在的列号 int count=0;//存放解个数 void print(int n)//输出一个解 { count++;int i;printf(“ 第%d个解:”,count);for(i=1;i<=n;i++)

} int place(int k,int j){ int i=1;while(i

//i=1~k-1是已放置了皇后的行

} return 0;i++;return 1;} void queen(int k,int n){ int j;if(k>n)

} void main(){ int n;

scanf(“%d”,&n);if(n>20)

{

} printf(“ %d皇后问题求解如下:n”,n);queen(1,n);printf(“n”);printf(“n值太大,不能求解n”);else

//n存放实际皇后个数

printf(“ 皇后问题(n<20)n=”);print(n);for(j=1;j<=n;j++)if(place(k,j))

{

q[k]=j;queen(k+1,n);}

//所有皇后放置结束 //在第k行上穷举每一个位置 //在第k行上找到一个合适位置(k,j)else

//放置1-k的皇后

}

四、实验结果和分析

五、实验心得体会

递归应用能够帮我们解决很多需要重复操作的繁琐的算法问题,运用递归我们可以省下不少的时间,能让我们更有效率的进行其他的工作,因此递归算法是十分重要的。

广东工业大学数据结构实验报告(6)

学院:自动化

专业:12级物联网3班

姓名:xxx

学号:xxx 老师:张小波

实验日期:2014年6月21日

实验地点:实二203 成绩评定:

实验题目:求5X5阶螺旋方阵

一、实验目的掌握矩阵的各种算法

二、实验软件环境

1.计算机每人一台。2.软件:Visual Studio 2012

三、实验内容

#include #define MaxLen 10 void fun(int a[MaxLen][MaxLen],int n){ int i,j,k=0,m;if(n%2==0)//m=én/2ù

{

m=n/2;m=n/2+1;else for(i=0;i

} for(j=i+1;j

} } } for(j=n-i-2;j>=i;j--){

} for(j=n-i-2;j>=i+1;j--){

} k++;a[j][i]=k;k++;a[n-i-1][j]=k;void main(){ int n,i,j;int a[MaxLen][MaxLen];printf(“输入n(n<10):”);scanf(“%d”,&n);fun(a,n);printf(“%d阶数字方阵如下:n”,n);for(i=0;i

} } for(j=0;j

四、实验结果和分析

五、实验心得体会

矩阵的算法在大一的时候已经学过,我们只需要熟练的运用好循环进行输入就好了。

广东工业大学数据结构实验报告(7)

学院:自动化

专业:12级物联网3班

姓名:xxx 学号:xxx

老师:张小波

实验日期:2014年6月21日

实验地点:实二203 成绩评定:

实验题目:构造哈夫曼树

一、实验目的掌握二叉树的遍历,构造。以及哈夫曼树的相关知识。

二、实验软件环境

1.计算机每人一台。2.软件:Visual Studio 2012

三、实验内容

#include #include #define N 50 #define M 2*N-1 typedef struct { char data[5];//节点值

int weight;

int parent;

int lchild;

int rchild;} HTNode;typedef struct { char cd[N];

int start;} HCode;void CreateHT(HTNode ht[],int n){ int i,k,lnode,rnode;//叶子节点数 //树中节点总数

//权重 //双亲节点 //左孩子节点 //右孩子节点

//存放哈夫曼码

int min1,min2;for(i=0;i<2*n-1;i++)

{

} } void CreateHCode(HTNode ht[],HCode hcd[],int n){ int i,f,c;HCode hc;for(i=0;i

{

} } void DispHCode(HTNode ht[],HCode hcd[],int n)

//所有节点的相关域置初值-1 //构造哈夫曼树

//lnode和rnode为最小权重的两个节点位置 ht[i].parent=ht[i].lchild=ht[i].rchild=-1;for(i=n;i<2*n-1;i++)min1=min2=32767;lnode=rnode=-1;for(k=0;k<=i-1;k++)

if(ht[k].parent==-1)//只在尚未构造二叉树的节点中查找 {

} if(ht[k].weight

} else if(ht[k].weight

} hc.start++;hcd[i]=hc;//start指向哈夫曼编码最开始字符 if(ht[f].lchild==c)//处理左孩子节点

hc.cd[hc.start--]='0';

//处理右孩子节点

hc.cd[hc.start--]='1';else

c=f;f=ht[f].parent;

{ int i,k;int sum=0,m=0,j;printf(“输出哈夫曼编码:n”);//输出哈夫曼编码

for(i=0;i

} printf(“平均长度=%gn”,1.0*sum/m);} void main(){ int n=15,i;char *str[]={“The”,“of”,“a”,“to”,“and”,“in”,“that”,“he”,“is”,“at”,“on”,“for”,“His”,“are”,“be”};int fnum[]={1192,677,541,518,462,450,242,195,190,181,174,157,138,124,123};HTNode ht[M];HCode hcd[N];for(i=0;i

} CreateHT(ht,n);CreateHCode(ht,hcd,n);DispHCode(ht,hcd,n);} strcpy(ht[i].data,str[i]);ht[i].weight=fnum[i];j=0;printf(“ %s:t”,ht[i].data);for(k=hcd[i].start;k<=n;k++){

} m+=ht[i].weight;sum+=ht[i].weight*j;printf(“n”);printf(“%c”,hcd[i].cd[k]);j++;

四、实验结果和分析

五、实验心得体会

哈夫曼树也称最优二叉树,二叉树很多时候确实是一件很有用的东西,也是我们必须掌握的一个算法。

广东工业大学数据结构实验报告(8)

学院:自动化

专业:12级物联网3班

姓名:xxx 学号:xxx 老师:张小波

实验日期:2014年6月21日

实验地点:实二203 成绩评定:

实验题目:实现二分找查的算法

一、实验目的掌握找查的方法。

二、实验软件环境

1.计算机每人一台。2.软件:Visual Studio 2012

三、实验内容

#include #define MAXL 100 typedef int KeyType;typedef char InfoType[10];typedef struct {

//其他数据

//顺序表类型 KeyType key;//KeyType为关键字的数据类型 InfoType data;} NodeType;typedef NodeType SeqList[MAXL];{ int low=0,high=n-1,mid,count=0;while(low<=high){

//定义表中最多记录个数

int BinSearch(SeqList R,int n,KeyType k)//二分查找算法

mid=(low+high)/2;printf(“ 第%d次比较:在[%d,%d]中比较元素R[%d]:%dn”,++count,low,high,mid,R[mid].key);if(R[mid].key==k)//查找成功返回 return mid;if(R[mid].key>k)//继续在R[low..mid-1]中查找

} high=mid-1;low=mid+1;//继续在R[mid+1..high]中查找 else return-1;} void main(){ SeqList R;KeyType k=9;int a[]={1,2,3,4,5,6,7,8,9,10},i,n=10;for(i=0;i

R[i].key=a[i];

//建立顺序表

printf(“关键字序列:”);for(i=0;i

} printf(“元素%d的位置是%dn”,k,i);printf(“元素%d不在表中n”,k);else

四、实验结果和分析

五、实验心得体会

找查的算法最主要还是弄清楚各指针以及关键字的代码,一个不小心 就很容易弄错了。

第二篇:广东工业大学实验报告

AutoCAD实验报告

课 程 工程制图 实验名称 AutoCAD 专业班级 微电子科学与工程(1)班 姓 名

学 号 311300722 指导老师习小英

2013年 12 月 17日

一、实验目的 

二、实验内容和要求

三、实验步骤

四、实验心得体会

第三篇:广东工业大学实验报告封面

实验报告

课程: 数字电子技术实验

班级: 12电气信息类创新实验班 学号: 姓名:

实验教师: 刘冰茹 实验时间: 2013.11.20

自动化 学院 实验2号楼214 实验室

第四篇:数据结构实验报告

注意:实验结束后提交一份实验报告电子文档

电子文档命名为“学号+姓名”,如:E01214058宋思怡

《数据结构》实验报告

(一)学号:姓名:专业年级:

实验名称:线性表

实验日期:2014年4月14日

实验目的:

1、熟悉线性表的定义及其顺序和链式存储结构;

2、熟练掌握线性表在顺序存储结构上实现基本操作的方法;

3、熟练掌握在各种链表结构中实现线性表基本操作的方法;

4、掌握用 C/C++语言调试程序的基本方法。

实验内容:

一、编写程序实现顺序表的各种基本运算,并在此基础上设计一个主程序完成如下功能:

(1)初始化顺序表L;

(2)依次在L尾部插入元素-1,21,13,24,8;

(3)输出顺序表L;

(4)输出顺序表L长度;

(5)判断顺序表L是否为空;

(6)输出顺序表L的第3个元素;

(7)输出元素24的位置;

(8)在L的第4个元素前插入元素0;

(9)输出顺序表L;

(10)删除L的第5个元素;

(11)输出顺序表L。

源代码

调试分析(给出运行结果界面)

二、编写程序实现单链表的各种基本运算,并在此基础上设计一个主程序完成如下功能:

„„„„

„„„„

小结或讨论:

(1)实验中遇到的问题和解决方法

(2)实验中没有解决的问题

(3)体会和提高

第五篇:数据结构实验报告

南京信息工程大学实验(实习)报告

实验(实习)名称数据结构实验(实习)日期 2011-11-2得分指导教师周素萍

系公共管理系专业信息管理与信息系统年级10级班次1姓名常玲学号2010230700

3实验一顺序表的基本操作及C语言实现

【实验目的】

1、顺序表的基本操作及 C 语言实现

【实验要求】

1、用 C 语言建立自己的线性表结构的程序库,实现顺序表的基本操作。

2、对线性表表示的集合,集合数据由用户从键盘输入(数据类型为整型),建立相应的顺序表,且使得数据按从小到大的顺序存放,将两个集合的并的结果存储在一个新的线性表集合中,并输出。

【实验内容】

1、根据教材定义的顺序表机构,用 C 语言实现顺序表结构的创建、插入、删除、查找等操作;

2、利用上述顺序表操作实现如下程序:建立两个顺序表表示的集合(集合中无重

复的元素),并求这样的两个集合的并。

【实验结果】

[实验数据、结果、遇到的问题及解决]

一. Status InsertOrderList(SqList &va,ElemType x)

{

}

二. Status DeleteK(SqList &a,int i,int k)

{//在非递减的顺序表va中插入元素x并使其仍成为顺序表的算法 int i;if(va.length==va.listsize)return(OVERFLOW);for(i=va.length;i>0,x

}

//注意i的编号从0开始 int j;if(i<0||i>a.length-1||k<0||k>a.length-i)return INFEASIBLE;for(j=0;j<=k;j++)a.elem[j+i]=a.elem[j+i+k];a.length=a.length-k;return OK;

三.// 将合并逆置后的结果放在C表中,并删除B表

Status ListMergeOppose_L(LinkList &A,LinkList &B,LinkList &C)

{

LinkList pa,pb,qa,qb;pa=A;pb=B;qa=pa;qb=pb;// 保存pa的前驱指针 // 保存pb的前驱指针 pa=pa->next;pb=pb->next;A->next=NULL;C=A;while(pa&&pb){} while(pa){} qa=pa;pa=pa->next;qa->next=A->next;A->next=qa;if(pa->data

data){} else{} qb=pb;pb=pb->next;qb->next=A->next;//将当前最小结点插入A表表头 A->next=qb;qa=pa;pa=pa->next;qa->next=A->next;//将当前最小结点插入A表表头 A->next=qa;

}

} pb=B;free(pb);return OK;qb=pb;pb=pb->next;qb->next=A->next;A->next=qb;

顺序表就是把线性表的元素存储在数组中,元素之间的关系直接通过相邻元素的位置来表达。

优点:简单,数据元素的提取速度快;

缺点:(1)静态存储,无法预知问题规模的大小,可能空间不足,或浪费存储空间;(2)插入元素和删除元素时间复杂度高——O(n)

求两个集合的并集

该算法是求两个集合s1和s2的并集,并将结果存入s引用参数所表示的集合中带回。首先把s1集合复制到s中,然后把s2中的每个元素依次插入到集合s中,当然重复的元素不应该被插入,最后在s中就得到了s1和s2的并集,也就是在s所对应的实际参数集合中得到并集。

下载广东工业大学数据结构实验报告(12届)(精选五篇)word格式文档
下载广东工业大学数据结构实验报告(12届)(精选五篇).doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    数据结构实验报告

    数据结构实验报告 一. 题目要求 1)编程实现二叉排序树,包括生成、插入,删除; 2)对二叉排序树进行先根、中根、和后根非递归遍历; 3)每次对树的修改操作和遍历操作的显示结果都需要在......

    数据结构实验报告

    实验报告4 排序 一、实验目的 1、掌握常用的排序方法,并掌握用高级语言实现排序算法的方法。 2、深刻理解排序的定义和各种排序方法的特点,并能加以灵活应用。 3、了解各种方......

    数据结构实验报告

    数 据 结 构 实 验 报 告 1.问题描述 为某个单位建立一个员工通讯录管理系统,可以方便地查询每一个员工的办公室电话号码、手机号码及电子邮箱。 2. 设计分析 在本设计中,整......

    数据结构实验报告

    数据结构实验报告 第一次实验 学号:20141060106 姓名:叶佳伟 一、实验目的 1、复习变量、数据类型、语句、函数; 2、掌握函数的参数和值; 3、了解递归。 二、实验内容 1、(必做......

    数据结构实验报告

    天 津 科 技 大 学 14学年—15学年第 2 学期 数据结构实验任务书 专业名称: 计算机科学与技术 实验学时: 4 课程名称:数据结构 任课教师: 史绍强 实验题目:图的最短路径算法的实......

    数据结构实验报告

    河南省高等教育自学考试 实 验 报 告 册 计算机及应用专业(本科段) 《数据结构》姓名周东伟准考证号010512201008所属地市郑州实验地点河南职业技术学院实验日期2014-3-18实验......

    数据结构实验报告

    数据结构实验报告 指导教师 姓 名班 级学 号实验 室 黄梅根钟志伟 0140703 07310325 S331-B 2008-11-29 单链表的插入和删除实验日志 指导教师:黄梅根实验时间:2008年10月1......

    数据结构实验报告

    数据结构实验报告 实验名称数据结构与算法专业班级 数学与应用数学1201班 学号 1304120306 姓名谢 伟 指导老师陈 明......