范文无忧网范文学习范文大全

严蔚敏那本数据结构书上的伪代码要怎么在vc环境中运行

02月25日 编辑 fanwen51.com

[数据结构课程设计数据结构报数出列游戏源代码这是我们数据结构的]很简单的单链表处理, 我建议你自己好好做做 将来工作链表是重要数据结构之一,使用的地方非常多 一定要自己做做 既然如此,给你代码: 另外codeblock不好用,建议你使用netbeans,代码...+阅读

严蔚敏那本数据结构书上的伪代码要怎么在vc环境中运行

1.严蔚敏数据结构的也有配套的c语言版带光盘的书是有卖的。 2.我开始学的时候也就是先指针,再结构体分解了去一块块的学习,有点懂了才开始写代码的。 理论的倒是以前学过的,(以前没动手写过) 3.一个单链表的标准模板(我就是模仿这个人的模板开始学习的,再去自己写双链表,栈,二叉树这样一个过程的) 函数的功能和函数名一致的,你可以对照着严蔚敏那本上单链表的函数列表看 include#includetypedef int ElemType; #define TRUE 1 #define FALSE 0 #define NULL 0 #define flag -1 typedef struct LNode { ElemType data; struct LNode *next; } LNode,*LinkedList; LinkedList LinkedListInit() { LinkedList L; L=(LinkedList)malloc(sizeof(LNode)); L->next=NULL; return L; } void LinkedListClear(LinkedList L) { L->next=NULL; printf("链表已经清空\n"); } int LinkedListEmpty(LinkedList L) { if(L->next==NULL) return TRUE; else return FALSE; } /* 遍历单链表 check*/ void LinkedListTraverse(LinkedList L) { LinkedList p; p=L->next; if(p==NULL) printf("单链表为空表\n"); else { printf("链表中的元素为:\n"); while(p!=NULL) { printf("%d ",p->data); p=p->next; } } printf("\n"); } int LinkedListLength (LinkedList L) { LinkedList p; int j; p=L->next; j=0; while(p!=NULL) { j++;p=p->next; } return j; } LinkedList LinkedListGet(LinkedList L,int i) { LinkedList p;int j; p=L->next; j=1; while (p!=NULL & jnext; j++; } if (j==i) return p; else return NULL; } int LinkedListLocate ( LinkedList L, ElemType x) { LinkedList p; int j; p=L->next; j=1; while ( p!=NULL & p->data != x) { p=p->next;j++; } if(p) return j; else return 0; } void LinkedListInsert(LinkedList L, int i, ElemType x) { LinkedList p,s; int j; j=1;p=L; while(p&jnext;j++;} if(p==NULL||j>i) printf("插入位置不正确\n"); else { s=(LNode *)malloc(sizeof(LNode)); s->data=x; s->next=p->next; p->next=s; printf("%d已插入到链表中\n",x); } } void LinkedListDel(LinkedList L,int i) { LinkedList p,q; int j; j=1;p=L; while(p->next&jnext;j++;} if(p->next==NULL) printf("删除位置不正确\n"); else {q=p->next;p->next=q->next;free(q); printf("第%d个元素已从链表中删除\n",i); } } LinkedList LinkedListCreat( ) { LinkedList L=LinkedListInit(),p,r; ElemType x; r=L; printf("请依次输入链表中的元素,输入-1结束\n"); scanf("%d",&x); while (x!=flag) { p=(LinkedList)malloc(sizeof(LNode)); p->data=x; r->next=p; r=p; scanf("%d",&x); } r->next=NULL; return L; } int scan() {int d; printf(".\n"); printf("*******************************\n"); printf("1.初始化链表\n"); printf("2.输入链表\n"); printf("3.求链表长度\n"); printf("4.检验是不是空链表\n"); printf("5.遍历链表 \n"); printf("6.从链表中按照位置查找元素值\n"); printf("7.从链表中按照元素值查找位置\n"); printf("8.向链表中插入元素\n"); printf("9. 从链表中删除元素\n"); printf("10.清空链表\n"); printf("11.合并有序链表(需要重新输入两个有序递增链表)\n"); printf("键入其他键退出\n"); printf("*******************************\n"); printf(".\n"); scanf("%d",&d); return(d); } LinkedList un(LinkedList La,LinkedList Lb) /*合并链表*/ { LinkedList p,q,r; p=La->next; q=Lb->next; r=La; while((p!=NULL)&(q!=NULL)) if(p->datadata) { r->next=p; r=p;p=p->next; } else { r->next=q; r=q;q=q->next; } if(p!=NULL) r->next=p; if(q!=NULL) r->next=q; return La; } void print(LinkedList L) /*输出链表中的结点*/ { LinkedList p; p=L->next; while(p!=NULL) { printf("%d ",p->data); p=p->next; } } main() { int quit=0; int i,locate; ElemType e; LinkedList L,p,La,Lb,Lc; while(!quit) switch(scan()) { case 1:L=LinkedListInit();printf("\n");break; case 10:LinkedListClear(L);printf("\n");break; case 3:printf("链表的长度为 %d\n",LinkedListLength(L));break; case 4:if(LinkedListEmpty(L))printf("链表为空\n");else printf("链表非空\n");break; case 5:LinkedListTraverse(L); break; case 6:printf("请输入待查询元素在链表中的位置:"); scanf("%d",&i); p=LinkedListGet(L,i); if(p) printf("链表中第%d个元素的值为:%d\n",i,p->data); else printf("查询位置不正确\n"); break; case 7:printf("请输入待查询元素的值:"); scanf("%d",&e); locate=LinkedListLocate(L,e); if(locate) printf("%d在链表中的位置是:%d\n",e,locate); else printf("链表中没有值为%d的元素\n",e); break; case 8:printf("请输入插入元素的位置和值(中间以空格或回车分隔):\n"); scanf("%d%d",&i,&e); LinkedListInsert(L,i,e); break; case 9:if(LinkedListLength(L)==0) printf("链表已经为空,不能删除\n"); else {printf("请输入待删除元素的位置:\n"); scanf("%d",&i); LinkedListDel(L,i);} break; case 2:L=LinkedListCreat(); printf("\n");break; case 11: {printf("合并有序链表:\n"); printf("请输入第一个有序链表\n"...

严蔚敏数据结构这张图的两个算法怎么理解

1. 从void InitSpace.SL(SLinkList &space)函数可以看出

space[0].cur=1;

space[1].cur=2;

...

space[MAXSIZE-2].cur=MAXSIZE-1;

space[MAXSIZE-1].cur=0;

2. 算法2.14, int Malloc.SL(SLinkList &space)函数可以看出

第一次调用Malloc, return 1, 并且闲至空间少了一个,因为space[0].cur=2;

i=space[0].cur; --> i=1; space[0].cur=2; 就拿到了第1个结点

第二次调用Malloc, return 2, 并且闲至空间少了一个,因为space[0].cur=3;

i=space[0].cur; --> i=2; space[0].cur=3; 就拿到了第2个结点

...

第(MAXSIZE-1)次调用Malloc, return MAXSIZE-1,空间用完,因为space[0].cur=0;

i=space[MAXSIZE-1].cur; --> i=MAXSIZE-1; space[0].cur=space[MAXSIZE-1].cur=0; 就拿到了第MAX-1个结点

3. 算法2.15, int Free.SL(SLinkList &space, int k)函数可以看出space[0].cur是表示当前第N个结点可用,space[k].cur=space[0].cur=N; space[0].cur=k;表示当前第k个结点可用,下一个可用结点是第N个;

所以在这此时调用Malloc就会拿到第k个结点,因为保存了下一个可用结点是在第N个,再下次调用Malloc就会去拿到第N个结点了

延伸阅读:

跪求数据结构课程设计C语言版代码感激不尽在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体同时...

请问在英语作文中要引入谚语名言可以怎么引入蒽,这个问题我是下哈~!给你几个列子啊,{1}A prevrb says ,“you are only young once”(适用于已记住的名言){2}As everyone knows,No one can deny that···英语的系统学习,首...

经济结构在调整中优化转型升级态势良好各地区各部门按照党中央、国务院的部署和安排,坚持政府引导和市场主导相结合,加快转变经济发展方式,加大对符合结构调整和转型升级方向重点领域的支持力度,我国经济结构在调整中...

物流在供应链结构中的作用随着科技的进步和市场的统一,供应链中很多供应商和大的企业为了满足市场需求,将物流行业务外包给第三方物流服务商,以降低存货的成本,提高配送的效率和准确率。但是,由于第三方物...

如何在excel表格中选出多个需要的数据方法一:用“删除重复项”功能 将上述A、B两列中的数据复制粘贴到其他区域,例如D2:E19区域,选择D2:E19,在“数据”选项卡的“数据工具组”中单击“删除重复项”,在弹出的对话框中...

在word中组织结构图怎么做你好 仔细看看 好好学学 第 一、我们首先执行“插入”——“图片”——“组织结构图”,然后先在文件中插入一个基本结构图,展开“组织结构图”工具条。 第 二、然后我们可以选...

如何在结构游戏中培养幼儿创造力创新能力是由人的创造性思维品质与创造性个性品质综合而形成的一种能力。创新性思维品质主要包括思维的流畅性、变意性;创造个性品质主要包括好奇心、想象力、挑战性和冒险性...

Android中 Webview怎么获取打开的网页的 HTML代码WebView(网络视图)能加载显示网页,可以将其视为一个浏览器。它使用了WebKit渲染引擎加载显示网页,实现WebView有以下两种不同的方法: 第一种方法的步骤: 1.在要Activity中实例化We...

环境审计或环境信息系统在企业环境管理中的作用环境审计是在经济社会发展到一定程度下提出的,是人类自我约束、自我保护和要求保持可持续发展的觉醒行为。由于各国政府承诺担当保护环境的责任,将其列为政府职责。且环境保护...

推荐阅读
图文推荐
栏目列表