数据结构实验指导书及答案(徐州工程学院)(3)

2019-08-31 15:10

strcpy(p2->data->name,x); strcpy(p2->data->num,y); p2->data->cj=z; p2->next=NULL; p1->next=p2; p1=p2;

scanf(\printl(head);}

void crl(struct lnode_hc *head) {void printl(struct lnode_hc *head); int j;

struct lnode_hc *p,*p1=head;

printf(\请输入要插入信息的位置:\scanf(\

while(j-->1)p1=p1->next;

p=(struct lnode_hc*)malloc(LEN); if(!p)printf(\出错!\\n\

p->data=(struct hc_stu*)malloc(LEN1); if(!p->data)printf(\出错!\\n\

printf(\请输入要插入的信息:\\n\

scanf(\p->next=p1->next;p1->next=p; printl(head);}

void scl(struct lnode_hc *head) {void printl(struct lnode_hc *head); int j;

struct lnode_hc *p1=head,*p2=head->next; printf(\请输入要删除信息的位置:\scanf(\while(j>1) {p1=p1->next; p2=p2->next; j--;}

printf(\删除的信息为:%s,%s,%d\\n\p1->next=p2->next;free(p2); printl(head);}

void hbl(struct lnode_hc *h1,struct lnode_hc *h2,struct lnode_hc *h3) {struct lnode_hc *p1,*p2,*p3;

p1=h1->next;p2=h2->next;h3=p3=h1; while(p1&&p2)

{if(p1->data->cj>p2->data->cj)

{p3->next=p1;p3=p1;p1=p1->next;} else

{p3->next=p2;p3=p2;p2=p2->next;}} p3->next=p1?p1:p2;free(h2); printl(h3);}

void printl(struct lnode_hc *head) {struct lnode_hc *p=head->next; printf(\当前表中元素如下:\\n\while (p->next!=NULL)

{printf(\p=p->next;}

printf(\}

实验四 栈的基本操作

实验预备知识:

1.熟练运用线性结构进行数据处理,熟练使用指针进行数据访问。 2.掌握递归程序设计思想。

3.掌握堆栈和队列的应用背景与场合。 4.理解堆栈和队列的数据类型。

一、实验目的

1.掌握栈的抽象数据类型。

2.掌握实现栈的各种操作的算法。 3.理解栈与递归的关系。

二、实验环境

⒈ 硬件:每个学生需配备计算机一台。操作系统:DOS或Windows; ⒉ 软件:DOS或Windows操作系统+Turbo C;

三、实验要求

1.用C描述栈的每种操作在顺序栈或链栈上的实现。

2.将建栈、初始化栈、判断栈是否非空、求栈的长度、输出从栈顶到栈底的元素分别定义为5个子函数,通过主函数实现对上述子函数的调用。

3. 输入数据:数据域(data)设定为整型。

四、实验内容

1.在自己的U盘的“姓名+学号”文件夹中创建“实验4”文件夹,本次实验的所有

程序和数据都要求存储到本文件夹中。

2.定义两个堆栈:数据栈和操作栈。 3.实现如下堆栈处理函数。

建栈、初始化栈、判断栈是否非空、求栈的长度、输出从栈顶到栈底的元素 #include \#include \#include \#include \

#define STACK_INIT_SIZE 1 #define STACKINCREMENT 1 #define ERROR 0

typedef struct {char *base; char *top; int stacksize; }hc_sqstack;

void main()

{hc_sqstack *initstack_hc(); void cshstack_hc(hc_sqstack *s); void push_hc(hc_sqstack *s); void pop_hc(hc_sqstack *s);

void printstack_hc(hc_sqstack *s); hc_sqstack *s; char f;

printf(\建立栈(C)\\n\printf(\初始化栈(N)\\n\printf(\入栈元素(I)\\n\printf(\出栈元素(D)\\n\printf(\退出(E)\\n\\n\do

{printf(\输入要做的操作:\flushall(); f=getchar();

if(f=='C')s=initstack_hc(); else if(f=='I')

{push_hc(s);printstack_hc(s);} else if(f=='N')

{cshstack_hc(s);printstack_hc(s);} else if(f=='D')

{pop_hc(s);printstack_hc(s);}

}while(f!='E');printf(\作者:黄晨\

hc_sqstack *initstack_hc() {hc_sqstack *s;

s=(hc_sqstack*)malloc(sizeof(hc_sqstack)); if(!s)exit(ERROR); return(s);}

void cshstack_hc(hc_sqstack *s) {char e;

s->base=(char*)malloc(STACK_INIT_SIZE*sizeof(char)); if(!s->base)exit(ERROR); s->top=s->base;

s->stacksize=STACK_INIT_SIZE; printf(\输入要栈的元素以#结束:\\n\flushall(); e=getchar(); while(e!='#')

{if(s->top-s->base>=s->stacksize)

{s->base=(char*)realloc(s->base,(s->stacksize+STACKINCREMENT)*sizeof(char)); if(!s->base)exit(ERROR); s->top=s->base+s->stacksize;

s->stacksize+=STACKINCREMENT;} *s->top++=e; flushall(); e=getchar();}}

void push_hc(hc_sqstack *s) {char e;

printf(\输入要入栈顶元素:\flushall(); e=getchar();

if(s->top-s->base>=s->stacksize)

{s->base=(char*)realloc(s->base,(s->stacksize+STACKINCREMENT)*sizeof(char)); if(!s->base)exit(ERROR); s->top=s->base+s->stacksize;

s->stacksize+=STACKINCREMENT;} *s->top++=e;}

void pop_hc(hc_sqstack *s)

{if(s->top==s->base) exit(ERROR);

printf(\出栈的元素为:%c\\n\

void printstack_hc(hc_sqstack *s) {char *t=s->top-1;

printf(\当前栈中元素为:\\n\

while(t!=s->base) {printf(\printf(\

栈的操作 1. 入栈

#include \#include \#include \#include \

#define STACK_INIT_SIZE 1 #define STACKINCREMENT 1 #define ERROR 0

typedef struct {char *base; char *top; int stacksize; }hc_sqstack;

void main()

{hc_sqstack *initstack_hc(); void cshstack_hc(hc_sqstack *s); void push_hc(hc_sqstack *s);

void printstack_hc(hc_sqstack *s); hc_sqstack *s; char f;

printf(\建立栈(C)\\n\printf(\初始化栈(N)\\n\printf(\入栈元素(I)\\n\printf(\退出(E)\\n\\n\do

{printf(\输入要做的操作:\flushall(); f=getchar();

if(f=='C')s=initstack_hc(); else if(f=='I')

{push_hc(s);printstack_hc(s);} else if(f=='N')

{cshstack_hc(s);printstack_hc(s);} }while(f!='E');

hc_sqstack *initstack_hc()


数据结构实验指导书及答案(徐州工程学院)(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:品德与社会毕业复习提纲(六下)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: