Part A是一些你的知识技能调查 Part B全是通信方面的东西,不会做了,题目都没看完 Part C是Computer Sience的东西。 前3道是选择题,很easy 1、用A[1...n]模拟栈,A[n]是栈底,当A[T]是当前栈顶时,POP操作后,当然栈顶是什么http://blog.youkuaiyun.com/weiweitj/archive/2008/04/27/2336067.aspx 2、假设二叉树的根是为0层,那么第i层最多有几个节点?2^(k-1) 3、以下各项那项是结构化编程语言不允许的 a if-else b loop-while,for c goto d function 4、给出软件生存周期图
template<typename T> inline int CDList<T>::InsertBefore(constint pos, const T data) ...{ int i; int nRetPos; CNode<T>*pTmpNode; CNode<T>*pNewNode; pNewNode =new CNode<T>; if (NULL == pNewNode) ...{ nRetPos =0; goto Exit0; } pNewNode->data = data; // if the list is empty, replace the head node with the new node. if (NULL == m_pNodeHead) ...{ pNewNode->prior = NULL; pNewNode->next = NULL; m_pNodeHead = pNewNode; m_pNodeTail = pNewNode; nRetPos =1; goto Exit1; } // is pos range valid? ASSERT(1<= pos && pos <= m_nCount); // insert before head node? if (1== pos) ...{ pNewNode->prior = NULL; pNewNode->next = m_pNodeHead; m_pNodeHead->prior = pNewNode; m_pNodeHead = pNewNode; nRetPos =1; goto Exit1; } // if the list is not empty and is not inserted before head node, // seek to the pos of the list and insert the new node before it. pTmpNode = m_pNodeHead; for (i =1; i < pos; ++i) ...{ pTmpNode = pTmpNode->next; } pNewNode->next = pTmpNode; pNewNode->prior = pTmpNode->prior; pTmpNode->prior->next = pNewNode; pTmpNode->prior = pNewNode; // if tail node, must update m_pNodeTail if (NULL == pNewNode->next) ...{ m_pNodeTail = pNewNode; } nRetPos = pos; Exit1: ++m_nCount; Exit0: return nRetPos; } template<typename T> inline int CDList<T>::InsertAfter(constint pos, const T data) ...{ int i; int nRetPos; CNode<T>*pNewNode; CNode<T>*pTmpNode; pNewNode =new CNode<T>; if (NULL == pNewNode) ...{ nRetPos =0; goto Exit0; } pNewNode->data = data; // if the list is empty, replace the head node with the new node. if (NULL == m_pNodeHead) ...{ pNewNode->prior = NULL; pNewNode->next = NULL; m_pNodeHead = pNewNode; m_pNodeTail = pNewNode; nRetPos =1; goto Exit1; } // is pos range valid? ASSERT(1<= pos && pos <= m_nCount); // if the list is not empty, // seek to the pos of the list and insert the new node after it. pTmpNode = m_pNodeHead; for (i =1; i < pos; ++i) ...{ pTmpNode = pTmpNode->next; } pNewNode->next = pTmpNode->next; pNewNode->prior = pTmpNode; // if NewNode's position is m_pNodeTail, update m_pNodeTail if (pTmpNode->next == m_pNodeTail) ...{ m_pNodeTail->prior = pNewNode; } pTmpNode->next = pNewNode; // if tail node, must update m_pNodeTail if (NULL == pNewNode->next) ...{ m_pNodeTail = pNewNode; } nRetPos = pos +1; Exit1: ++m_nCount; Exit0: return nRetPos; }