云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 数据结构习题集与实验指导

数据结构习题集与实验指导

  • 62 次阅读
  • 3 次下载
  • 2025/5/6 9:49:11

.

tmp1->next=tmp2; tmp1=tmp1->next; }

return pointer; }

link concatenate(link pointer1,link pointer2) { link tmp; tmp=pointer1; while(tmp->next) tmp=tmp->next; tmp->next=pointer2; return pointer1; }

void main(void)

{ int arr1[]={3,12,8,9,11}; link ptr;

ptr=create_list(arr1,5); selection_sort(ptr,5); }

实验二 栈和队列的应用

[实验目的]:掌握栈和队列的结构定义和特性;

掌握栈和队列的基本操作以及栈和队列在程序设计中的应用。 [实验题目]:

1、栈实现数制转换

#include #include #include

typedef int SElemType; #include \

Status visit(SElemType * e) {

printf(\ \}

void conversion() {

pSqStack S; SElemType e; int n;

InitStack(&S);

printf(\ scanf(\ if(n<0)

.

.

{

printf(\ return; }

if(!n) Push(S,0); while(n){

Push(S,n%8); n=n/8; }

printf(\ \ while(!StackEmpty(*S)){ Pop(S,&e); printf(\ } }

main() {

printf(\ conversion(); getch();

printf(\}

2、栈实现单行编辑 #include #include #include #include

#define EOFILE '`'

typedef char SElemType; #include \

Status visit(SElemType * e) {

printf(\}

char OP[10]={'+','-','*','/','(',')','#'}; int precede[7][7]={ 1,1,2,2,2,1,1, 1,1,2,2,2,1,1, 1,1,1,1,2,1,1, 1,1,1,1,2,1,1, 2,2,2,2,2,3,0, 1,1,1,1,0,1,1, 2,2,2,2,2,0,3}; int In(char c,char *op) {

int i=0;

.

.

while(I<7) if(c==op[i++]) return 1; return 0; }

char Precede(char op,char c) {

int pos_op; int pos_c; int i;

for(i=0;i<7; i++) {

if(op==OP[i]) pos_op=i; if(c==OP[i]) pos_c=i; }

switch(precede[pos_op][pos_c]) {

case 1: return '>'; case 2: return '<'; case 3: return '='; } }

char Operate(int a,char theta,int b) {

switch(theta) {

case '+':return a+b-'0'; case '-':return a-b+'0';

case '*':return (a-'0')*(b-'0')+'0'; case '/':return (a-'0')/(b-'0')+'0'; } }

char EvaluateExpression() {

SqStack *OPND,*OPTR; char c,x,theta; char a,b;

InitStack(&OPTR); Push(OPTR,'#'); InitStack(&OPND); c=getchar();

while(c!='#'||GetTop(*OPTR)!='#') {

if(!In(c,OP)) {Push(OPND,c);c=getchar();} else switch(Precede(GetTop(*OPTR),c))

.

.

{ case '<': Push(OPTR,c); c=getchar(); break; case '=': Pop(OPTR,&x); c=getchar(); break; case '>': Pop(OPTR,θ); Pop(OPND,&b); Pop(OPND,&a); Push(OPND,Operate(a,theta,b)); break; } }

c=GetTop(*OPND); DestroyStack(OPTR); DestroyStack(OPND); return c; }

main() {

char i;

printf(\ i=EvaluateExpression();

printf(\ \ printf(\

printf(\}

实现栈的头文件: #include \#define OVERFLOW -1

#define STACK_INIT_SIZE 100 #define STACKINCREMENT 10

typedef int Status; struct STACK {

SElemType *base; SElemType *top; int stacksize; };

typedef struct STACK SqStack; typedef struct STACK *pSqStack;

.

搜索更多关于: 数据结构习题集与实验指导 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

. tmp1->next=tmp2; tmp1=tmp1->next; } return pointer; } link concatenate(link pointer1,link pointer2) { link tmp; tmp=pointer1; while(tmp->next) tmp=tmp->next; tmp->next=pointer2; return pointer1; } void main(void) { int arr1[]={3,12,8,9,11}; link ptr; ptr=create_list(arr1,5); selection_sort(ptr,5); }

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com