《数据结构实验报告2.doc》由会员分享,可在线阅读,更多相关《数据结构实验报告2.doc(6页珍藏版)》请在三一办公上搜索。
1、实验报告(一) 姓名: 李旭 学号:15110100524实验名称栈和队列的应用指导教师张冬青实验地点实验日期2016/10/01实验目的理解栈和队列的概念,完成使用栈或队列的一种具体应用同组成员无实验过程【项目构思】本项目需要编写函数实现十进制浮点数到R进制的转换。在转换整数部分时可利用栈结构,转换小数部分时可利用队列结构。流程图:尾部插入尾部删除按位置插入源代码void push_back(List* lp, DT v) /从尾插入Node* np=make_node(v); /新的节点的前驱和后继的都定义为空 lp-tail-next=np;if(lp-len) /if list is
2、not emptynp-prev=lp-tail; /在最后面插入新节点 elselp-head=np;lp-tail=np;lp-len+;bool pop_back(List* lp) /从尾删除if(lp-len=0) return false; /为空的话就没有可删除的节点 error Node* del=lp-tail;lp-tail=del-prev; /尾部节点向前移动一个位置 if(lp-head) /若存在2个及以上节点lp-tail-next=NULL;elselp-head=NULL; /如果只有一个节点 将最后指为空 free(del);lp-len-;return true;void insert(List* lp, DT v, Node* pos) /在pos前插入值为v的数 Node *np=make_node(v); /创建新节点 找到位置 -插入-返回 np-prev=pos-prev;pos-prev-next=np; np-next=pos;pos-prev=np; /插入 np-data=v; /将要插入的值放入所创建的新节点 lp-len+;/请完成此部分功能 实验总结实验结果:对于双向链表的增删改查需同时对前驱、后继进行重定义,有从头到尾和从尾到头否则后引起程序的崩溃。