数据结构实验程序

  • 格式:doc
  • 大小:168.50 KB
  • 文档页数:36

下载文档原格式

  / 36
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

顺序表的基本操作

#include

using namespace std;

typedef int datatype;

#define maxsize 1024

#define NULL -1

typedef struct {

datatype *data;

int last;

}sequenlist;

void SETNULL(sequenlist &L) {

L.data=new datatype[maxsize];

for(int i=0;i

L.data[i]=NULL;

}

void INITIALIZE(sequenlist &L) {

cout<<"请输入结点个数:"<

cin>>st;

cout<<"请输入"<

for(int i=0;i

cin>>L.data[i];

}

int LENGTH(sequenlist &L) {

int i=0;

while(L.data[i]!=NULL)

i++;

return i;

}

datatype GET(sequenlist &L,int i) {

if(i<1||i>st) {

cout<<"error1"<

return NULL;

}

else

return L.data[i-1];

}

int LOCATE(sequenlist &L,datatype x) {

int j=0;

while(L.data[j]!=x)

j++;

if(j==st) {

cout<<"所查找值不存在!"<

return NULL;

}

else

return (j+1);

}

int INSERT(sequenlist &L,datatype x,int i) { int j;

if(st>=maxsize-1) {

cout<<"overflow";

return NULL;

}

else

if(i<1||(i>st)) {

cout<<"error2"<

return NULL;

}

else

{

for(j=(st);j>=i-1;j--)

L.data[j+1]=L.data[j];

L.data[i-1]=x;

st++;

}

return 1;

}

int DELETE(sequenlist &L,int i) {

int j;

if((i<1)||(i>st+1)) {

cout<<"error3"<

return NULL;

}

else {

for(j=i;j<=st;j++)

L.data[j-1]=L.data[j];

st--;

}

return 1;

}

int main() {

sequenlist L;

datatype x=5;

int i=4;

SETNULL(L);

INITIALIZE(L);

int a=LENGTH(L);

cout<<"线性表中的结点个数为:"<

datatype b=GET(L,i);

cout<<"线性表中第"<

int c=LOCATE(L,x);

cout<<"值为"<

int d=INSERT(L,x,i);

cout<<"插入新结点后的线性表:"<

for(int j=0;j

cout<

cout<

int e=DELETE(L,i);

cout<<"删除一个结点后的线性表:"<

for(int j=0;j

cout<

cout<

return 0;

}

单链表的基本操作

#include

using namespace std;

typedef char datatype;

typedef struct node {

datatype data;

struct node *next;

}linklist;

linklist *CREATLISTF() {

cout<<"请输入字符并以ENTER键结束"<

char ch;

linklist *head,*s;

head=(linklist*)malloc(sizeof(linklist));

head=NULL;

ch=getchar();

while(ch!='\n') {

s=(linklist*)malloc(sizeof(linklist));

s->data=ch;

s->next=head;

head=s;

ch=getchar();

}

return head;

}/*头插法建表*/

linklist *CREATLISTR() {

cout<<"请输入字符并以ENTER键结束"<

char ch;

linklist *head,*s,*r;

head=NULL;

r=NULL;

ch=getchar();

while(ch!='\n') {

s=(linklist*)malloc(sizeof(linklist));

s->data=ch;

if(head==NULL)

head=s;

else

r->next=s;

r=s;

ch=getchar();

}

if(r!=NULL)

r->next=NULL;

return head;

}/*尾插法建表*/

linklist *GET(linklist *head,int i) {

int j;

linklist *p;

p=head;

j=1;

while((p->next!=NULL)&&(j

p=p->next;

j++;

}

if(i==j)

return p;