好文档 - 专业文书写作范文服务资料分享网站

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

天下 分享 时间: 加入收藏 我要投稿 点赞

v1.0 可编辑可修改 #include \struct list { int data; struct list *next; };

typedef struct list node; typedef node *link;

link delete_node(link pointer,link tmp) {if (tmp==NULL) /*delete first node*/ return pointer->next; else

{ if(tmp->next->next==NULL)/*delete last node*/ tmp->next=NULL;

else /*delete the other node*/ tmp->next=tmp->next->next; return pointer; } }

void selection_sort(link pointer,int num) { link tmp,btmp; int i,min; for(i=0;i

tmp=pointer; min=tmp->data; btmp=NULL; while(tmp->next)

{ if(min>tmp->next->data)

4646

v1.0 可编辑可修改 {min=tmp->next->data; btmp=tmp; }

tmp=tmp->next; }

printf(\

pointer=delete_node(pointer,btmp); } }

link create_list(int array[],int num) { link tmp1,tmp2,pointer; int i;

pointer=(link)malloc(sizeof(node)); pointer->data=array[0]; tmp1=pointer; for(i=1;i

{ tmp2=(link)malloc(sizeof(node)); tmp2->next=NULL; tmp2->data=array[i]; tmp1->next=tmp2; tmp1=tmp1->next; }

return pointer; }

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

4747

v1.0 可编辑可修改 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()

4848

v1.0 可编辑可修改 {

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();

4949

v1.0 可编辑可修改 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++])

5050

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

v1.0可编辑可修改#include\structlist{intdata;structlist*next;};typedefstructlistnode;typedefnode*link;linkdelete_node(linkpointer,linktmp){if(tmp==NULL)/*deletefirs
推荐度:
点击下载文档文档为doc格式
5nyv1117md23x6i11fyp2nsft0iv0l00r4h
领取福利

微信扫码领取福利

微信扫码分享