最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

实验1—顺序表的操作及其应用

来源:动视网 责编:小OO 时间:2025-10-02 00:04:45
文档

实验1—顺序表的操作及其应用

仲恺农业工程学院实验报告纸计算机科学与工程学院(院、系)计算机科学与技术专业计机092班组数据结构课学号姓名实验日期2010.09.19教师评定实验1顺序表的操作及其应用一、实验目的1)掌握线性表的顺序存储结构;2)熟练掌握顺序表基本算法的实现;3)掌握利用线性表数据结构解决实际问题的方法和基本技巧;4)按照实验题目要求正确地完成实验内容二、实验内容要求:数据元素类型ElemType取整型int或者char。顺序存储实现如下算法:1)创建一顺序表;2)输出该顺序表;3)在顺序表中查找第i个
推荐度:
导读仲恺农业工程学院实验报告纸计算机科学与工程学院(院、系)计算机科学与技术专业计机092班组数据结构课学号姓名实验日期2010.09.19教师评定实验1顺序表的操作及其应用一、实验目的1)掌握线性表的顺序存储结构;2)熟练掌握顺序表基本算法的实现;3)掌握利用线性表数据结构解决实际问题的方法和基本技巧;4)按照实验题目要求正确地完成实验内容二、实验内容要求:数据元素类型ElemType取整型int或者char。顺序存储实现如下算法:1)创建一顺序表;2)输出该顺序表;3)在顺序表中查找第i个
仲恺农业工程学院实验报告纸

计算机科学与工程学院(院、系)计算机科学与技术 专业 计机092班 组               数据结构课

学号  姓名  实验日期 2010.09.19    教师评定           

               实验1  顺序表的操作及其应用

一、实验目的

    1)掌握线性表的顺序存储结构;

2)熟练掌握顺序表基本算法的实现;

3)掌握利用线性表数据结构解决实际问题的方法和基本技巧;

4)按照实验题目要求正确地完成实验内容

二、实验内容

要求:数据元素类型ElemType 取整型int 或者char。顺序存储实现如下算法:

1)创建一顺序表;

2)输出该顺序表;

3)在顺序表中查找第i 个元素,并返回其值;

4)在顺序表中第i 个元素之前插入一已知元素;

5)在顺序表中删除第i 个元素;

6)实现合并顺序表的。(选做)

    

    源程序:

#include

#include

#include

#define MAX 30    //定义线性表的最大长度

enum BOOL{False,True};  //定义BOOL型

typedef struct{

   char elem[MAX];       //线性表

   int last;             //last指示当前线性表的长度

}sqlisttp;               

void initial(sqlisttp &);    //初始化线性表

BOOL insert(sqlisttp &,int,char); //在线性表中插入元素

BOOL del(sqlisttp&,int,char &);   //在线性表中删除元素

void print(sqlisttp);             //显示线性表中所有元素

void main()

{sqlisttp S;      //S为一线性表

 int loc,flag=1;

 char j,ch;

 BOOL temp;

 

 //---------------------------程序解说--------------------------

 printf("本程序用来实现顺序结构的线性表。\\n");

 printf("可以实现查找、插入、删除等操作。\\n");

 //-------------------------------------------------------------

 initial(S);         //初始化线性表

 while(flag)

    { printf("请选择:\\n");

      printf("1.显示所有元素\\n");

      printf("2.插入一个元素\\n");

      printf("3.删除一个元素\\n");

      printf("4.退出程序    \\n");

      scanf(" %c",&j);

      switch(j)

    {case '1':print(S); break; //显示所有元素

     case '2':{printf("请输入要插入的元素(一个字符)和插入位置:\\n");

           printf("格式:字符,位置;例如:a,2\\n");

           scanf(" %c,%d",&ch,&loc);  //输入要插入的元素和插入的位置

           temp=insert(S,loc,ch);     //插入

           if(temp==False)  printf("插入失败!\\n");  //插入失败

                   else  {printf("插入成功!\\n");   print(S);} //插入成功

           break;

          }

     case '3':{printf("请输入要删除元素的位置:");

           scanf("%d",&loc);    //输入要删除的元素的位置

           temp=del(S,loc,ch);  //删除

           if(temp==True) printf("删除了一个元素:%c\\n",ch); //删除成功

           else printf("该元素不存在!\\n");  //删除失败

           print(S);

           break;

          }

     default:flag=0;printf("程序结束,按任意键退出!\\n");

    }

    }

 getch();

}

void initial(sqlisttp &v)

{//初始化线性表

 int i;

 printf("请输入初始线性表长度:n="); //输入线性表初始化时的长度

 scanf("%d",&v.last);

 printf("请输入从1到%d的各元素(字符),例如:abcdefg\\n",v.last);

 getchar();

for(i=0;i}

BOOL insert(sqlisttp &v,int loc,char ch)        

{//插入一个元素,成功返回True,失败返回False

 int i;

if((loc<1)||(loc>v.last+1))

   {printf("插入位置不合理!\\n");  //位置不合理

    return False;

   }

 else if(v.last>=MAX)         //线性表已满

     {printf("线性表已满!\\n");

      return False;

     }

else {for(i=v.last-1;i>=loc-1;i--) v.elem[i+1]=v.elem[i];//其后元素依次后移

       v.elem[loc-1]=ch;     //插入元素

       v.last++;                      //线性表长度加一

       return True;

     }

}

BOOL del(sqlisttp &v,int loc,char &ch)           

{//删除一个元素,成功返回True,并用ch返回该元素值,失败返回False

 int j;

 if(loc<1||loc>v.last)    //删除位置不合理

    return False;

 else {ch=v.elem[loc-1];  //ch取得该元素值

for(j=loc-1;j       v.last--;       //线性表长度减一

       return True;

      }

}

void print(sqlisttp v)          //显示当前线性表所有元素

{int i;

for(i=0;i printf("\\n");

}

运行截图:

    主菜单:

1.创建顺序表与输入数据;

2.插入数据:

3.  删除数据

三、实验总结:

 问题:

1.接触数据结构时,一脸茫然,通过反复看书,最后逐渐明白了其中的含义。

2.有些c语言的函数和c++语言函数不同。

3.3.delete(L,j)函数,在VC中delete是关键字不能用作函数名,还有一些的问题都是C语言上的小问题,只要多加练习就会掌握它的解决方法。

心得体会;

     数据结构是一门重要的课程,这是一门纯属于设计的科目,它需用把理论变为上机调试。在学习科目的第一节课起,就为我们阐述了它的重要性。它对我们来说具有一定的难度。它是其它编程语言的一门基本学科。首次做数据结构的实验是对C语言的复习,由于很久没有用C语言的原因,显得有点陌生了,但是经过多做实验多次运行程序,对自己学好的信心是越来越足,当自己完成一道程序感觉很满足。对于C语言的学习就得在实践中去摸索学习。

文档

实验1—顺序表的操作及其应用

仲恺农业工程学院实验报告纸计算机科学与工程学院(院、系)计算机科学与技术专业计机092班组数据结构课学号姓名实验日期2010.09.19教师评定实验1顺序表的操作及其应用一、实验目的1)掌握线性表的顺序存储结构;2)熟练掌握顺序表基本算法的实现;3)掌握利用线性表数据结构解决实际问题的方法和基本技巧;4)按照实验题目要求正确地完成实验内容二、实验内容要求:数据元素类型ElemType取整型int或者char。顺序存储实现如下算法:1)创建一顺序表;2)输出该顺序表;3)在顺序表中查找第i个
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top