知识大全 数据结构考研分类复习真题 第二章 答案[42]
Posted 结点
篇首语:生活只有在平淡无味的人看来才是空虚而平淡无味的。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 数据结构考研分类复习真题 第二章 答案[42]相关的知识,希望对你有一定的参考价值。
( )要求编程实现带头结点的单链表的逆置 首先建立一单链表 然后逆置
typedef struct node int data;∥假定结点数据域为整型 struct node *next; node *LinkedList; LinkedList creat( ) LinkedList head p int x; head=(LinkedList)malloc(sizeof(node)); head >next=null; /*设置头结点*/ scanf( %d &x); while(x!= ) /*约定输入 时退出本函数*/ p=(LinkedList)malloc(sizeof(node)); p >data=x; p >next=head >next;/* 将新结点链入链表*/ head >next=p; scanf( %d &x); return(head); ∥结束creat函数 LinkedList invert (LinkedList head) /*逆置单链表*/ LinkedList p=head >next; /*p为工作指针*/ head >next=null; while(p!=null) r=p >next; /*暂存p的后继*/ p >next=head >next; head >next=p; p=r; return(head); /*结束invert 函数*/ main() LinkedList la; la=creat( ); /*生成单链表*/ la=invert (la);/*逆置单链表*/
( )本题要求将数据项递减有序的单链表重新排序 使数据项递增有序 要求算法复杂度为O(n) 虽没说要求将链表逆置 这只是叙述不同 本质上是将单链表逆置 现编写如下
LinkedList invert (LinkedList la)∥la是带头结点且数据项递减有序的单链表 本算法将其排列成数据项递增有序的单链表 p=la >next; /*p为工作指针*/ la >next=null; while(p!=null) r=p >next; /*暂存p的后继 */ p >next=la >next;/*将p结点前插入头结点后 */ la >next=p;p=r; ∥结束算法
cha138/Article/program/sjjg/201311/23333相关参考
[题目分析]广义表的元素有原子和表在读入广义表表达式时遇到左括号(就递归的构造子表否则若是原子就建立原子结点若读入逗号就递归构造后续子表若n=则构造含空格字符的空表直到碰到输入结束符号(#)设广义
知识大全 数据结构考研分类复习真题 第六章 答案 (五)[42]
[题目分析]求中序全线索树任意结点p的前序后继其规则如下若p有左子女则左子女就是其前序后继若p无左子女而有右子女则p的右子女就是p的前序后继若p无左右子女这时沿p的右线索往上直到p的右标志为(非线
第章 线性表答案 一.选择题 ABCADDDCBBCIIEBCBCCCAAADCBDCBBAD 二.判断题 ×√√××××××××××√×√ 部分答案解释如下 头结点并不仅起
.()la () &
.[题目分析]本题所用数据结构是静态双向链表其结构定义为 typedef struct node char data[maxsize];∥用户姓名maxsize是
()voidCreatOut()∥建立有n个单词的单向链表重复单词只在链表中保留一个最后输出频度最高的k个单词 LinkedListla; la=(LinkedList)malloc(size
.[题目分析]在递增有序的线性表中删除数值相同的元素要知道被删除元素结点的前驱结点 LinkedListDelSame(LinkedListla) ∥la是递增有序的单链表本算法去掉数值相同的
()本题与上面两题类似要求结果指针为lc其核心语句段如下 pa=la>next;pb=hb>next; lc=(LinkedList)malloc(sizeof(LNode));
.设 q:=p^llink; 则 q^rlink:=p^rlink; p^rlink^llink:=q; p^llink:=q^llink; q^lli
.[题目分析] 知道双向循环链表中的一个结点与前驱交换涉及到四个结点(p结点前驱结点前驱的前驱结点后继结点)六条链 void Exchange(LinkedListp)∥p是