数据结构-线性表-怎么在VC++6.0中实现

自学数据结构中,重点:

书上写的程序 应该都能在VC++6.0中实现吧
不然写来干什么 至少我这么认为

可能说得太抽象 那例子来说明吧

例如怎么设计一个程序,cin N个数,生成一个队列,
然后判断队列是否为空,空就继续输入,非空就顺序输出队列中的元素

我在纠结,有些地方转不过弯,请高手指点下

#include<iostream.h>
#include<stdlib.h>
#include<iostream.h>
typedef struct seqlist //定义线性表的顺序存储结构
{
int *elem; //存储空间分配的首地址
int length ; //线性长度
}seqlist;
//此变量可作为线性表数据类型定义线性表
void init(seqlist &l) //线性表的初始化
{
l.elem=new int[20]; //分配存储空间存储线性表中的元素
l.length=0; //空线性表的长度为0
}

void delseqlist(seqlist &l) //销毁建立的线性表
{
delete []l.elem;
l.length=0;
}

void insert(seqlist &l,int i, int x)//元素e插入线性表中的第i个位置上
{
if(i<1||i>l.length+1)
cout<<"i值不合法!"<<endl; //错误处理
for(int j=l.length;j>=i;j--)
l.elem[j+1]=l.elem[j]; //第i个元素及其后的元素依次后移
l.elem[i]=x; //插入新元素于第i个位置上
l.length++; //线性表的长度增1
}

void printout(seqlist &l) //输出线性表当中的所有元素
{
int j;
for(j=1;j<=l.length;j++)
cout<<l.elem[j]<<" ";
}

int llength(seqlist &l) //求线性表的长度
{
return l.length;
}

int locateElem(seqlist &l, int e) //在顺序表L中查找第一个值于e相等的数据元素
{
int i=1;
int *p;
p=l.elem; p++; //p指向线性表中的第一个元素
while (i<=l.length && *p++!=e ) //依次向后进行比较
++i;
if(i<=l.length)
return i;
else
return 0; //返回结果
}

void Delete( seqlist &l,int i,int &e)//此函数删除第i个元素,并将其值用e返回
{
int *p,*q;
if((i<1)||(i>l.length)) cout<<"i值不合法!"<<endl;
p=&(l.elem[i]); //将被删元素送给e
e=*p;
q=l.elem+l.length; //表尾元素的位置
for(++p; p<=q; ++p)
*(p-1)=*p;//被删元素之后的元素前移
l.length--;
}

void invert( seqlist &l,int s,int t) //就地逆置
{
int k;
int w;
for(k=s;k<=(s+t)/2;k++)
{
w=l.elem[k];
l.elem[k]=l.elem[s+t-k];
l.elem[s+t-k]=w;
}
}

void main() //构成完整的源程序并对算法进行测试
{
seqlist l;
int x,a,y,b,j;
init(l); //初始化空线性表l
cout<<"输入线性表的长度:"<<endl;
cin>>a;
cout<<"输入线性表中的所有元素:"<<endl;
for(j=1;j<=a;j++)//通过添加元素使线性表l变为含有若干个元素的线性表
{
cin>> x;
insert(l,j,x);
}
cout<<"线性表为: ";
printout(l);
cout<<endl<<"被删除的元素的位置:";
cin>>y;
Delete(l,y,b);
cout<<endl<<"变化(删除元素)后的线性表为:";
printout(l);
invert(l,1,l.length );
cout<<endl<<"逆置后表为: ";
printout(l);
cout<<"输入要查找的元素:"<<endl;
cin>>x;
cout<<endl;
cout<<x<<" 在线性表中的位置为:(其中0表示x不在线性表中,其他值表示其在线性表中的位置)";
cout<<endl<<locateElem(l,x)<<endl;
}
我以前做的
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-05-31
一般来说应该都能,但是书上给的是简易的,你得自己补充组合,才能运行,我用的就是VC++6.0,不过我编程时用的是C语言,因为我们没学过C++,不过你如果把程序给出来,并说明那不明白的话,我应该能讲明白,语言很多都是通的。

数据结构上机实验(编程)(单链表的基本操作)
我们正在学数据结构,两星期前写好了线性表的所有基本操作,运行全部正确。包括InitList、DestoryList、ClearList、ListEmpty、ListLength、GetElem、LocateElem、PriorElem、NextElem、ListInsert、ListDelete、ListTraverse我所编译的环境是VC++ 6.0,有三个文件linklist.h linklist.cpp main.cpp 至于怎样用你应该知道的,我...

c语言问题~~~
int m;printf("此线性表为:");for(m=0 ; m<L->num ; m++)printf("%d ",L->data[m]);printf("\\n");} main() \/*程序主函数开始*\/ { struct study *L;int i,x,j,k;

严蔚敏那本《数据结构》书上的伪代码要怎么在vc环境中运行?急!很急...
1.严蔚敏数据结构的也有配套的c语言版带光盘的书是有卖的。2.我开始学的时候也就是先指针,再结构体分解了去一块块的学习,有点懂了才开始写代码的。理论的倒是以前学过的,(以前没动手写过)3.一个单链表的标准模板(我就是模仿这个人的模板开始学习的,再去自己写双链表,栈,二叉树这样一个...

栈是什么结构?
而逻辑结构是指线性表(栈、队列属于线性表的范畴)、图、二叉树等概念。理论上所有的逻辑结构都可以用上面两种存储结构在计算机内实现(当然从效率、存储空间等方面考虑实际实现中不同的逻辑结构采用的存储结构会有所偏重)~举个类似的例子:汽车和内燃机,内燃机主要有汽油机和柴油机两类,汽车有卡车、轿...

求遍历二叉树实验报告一份
计算机、VC++6.0程序 实验原理 建立一个二叉树,利用递归的方法实现对该二叉树的遍历,并输出遍历结果。实验程序及结果 include"stdlib.h"include"stdio.h"include"malloc.h"include "stdafx.h"include <stdio.h> include <malloc.h> typedef char DataType;typedef struct Node { DataType data;stru...

三级数据库技术好考吗?谁有全国计算机等级考试 三级数据库技术的历年考...
数据结构与算法 1. 数据结构、算法的基本概念。2. 线性表的定义、存储和运算。3. 树形结构的定义、存储和运算。4. 排序的基本概念和排序算法。5. 检索的基本概念和检索算法。操作系统 1. 操作系统的基本概念、主要功能和分类。2. 存储管理、文件管理、设备管理的主要技术。3.典型操作系统的...

vc6.0 :error C2143: syntax error : missing ')' before '&'_百度...
int *pb_last=Lb->list+Lb->size-1;while (pa<=pa_last && pb<=pb_last){ if (*pa <= *pb){ pc++ = *pa++;} else { pc++ = *pb++;} } while(pa <= pa_last){ pc++ = *pa++;} while(pb <= pb_last){ pc++ = *pb++;} }\/\/MergeList ...

计算机等级考试3级资料库技术难不难,采用什么样的教材好?
满分100分。 上机考试:60分钟,满分100分。 个人建议:上机可以根据南开100题来复习,只要把各种型别都掌握了,考试没有问题。 上机考的是C语言程式设计;环境是VC++6.0英文版。06年9月三级资料库计算机等级考试答案 :exam8.\/puter\/djks\/ 这个网站里就有,还有机试的.希望可以帮到你!

试编写一个算法,将两个有序线性表合成一个有序线性表...最好是在c++...
L->data[i-1]=x; \/\/在序号为i处放入x L->length++;return 1;} \/*归并 增序*\/ void merge(sqlist A, sqlist B, sqlist *C){ int m =0, n=0;while (m < A.length && n<B.length)if(A.data[m]<B.data[n]) \/\/将A的data[m]插入C尾部 { insert(C,C->length+1,A....

初学电脑编程需要什么
5、数据结构和算法 这门课程能够决定一个人程序设计水平的高低,是学习过程中需要重点掌握的。C和C++都是可以选择的,前期可以先学C,再学C++会相对简单一些。在学习编程语言的过程中,也需要同时学习计算机网络、数据库等相关知识,在当前的云计算和大数据时代背景下,还需要掌握如何通过云计算(PaaS)来...

相似回答