在笔试面试过程中遇到的比较难一点点的编程,双链表就是其中之一了。对于缺少编程经验的同学而言更是如此,止步于这里大有人在。虽然我比较幸运没有遇到这样的问题,但是为了以防万一,或者说加深一下自己的印象,还是动手写了一把。以下就将我在VC6.0上调试通过的代码。
#include <stdio.h>
#include <iostream.h>
#include <stdlib.h>
#include <string>
using namespace std;
typedef struct DoubleLinkList
{
int data;
struct DoubleLinkList *prior,*next;
}DLLNode;
int n = 5;//双向链表的长度
DLLNode *creatDLL(int n)//创建双向链表
{
cout<<"输入双向链表元素的个数:"<<n<<endl;
DLLNode *head ;//= new DLLNode;
DLLNode *ptr;
head=(DLLNode *)malloc(sizeof(DLLNode));
if (head == NULL)
{
cout<<"can not find space!"<<endl;
return 0;
}
head->next = NULL;
head->prior = NULL;
ptr = head;
for (int i = 1;i<=n;i++)//输入一个则依次向后创建一个节点,最后一个节点的next为NULL
{
DLLNode *inset;
inset = (DLLNode *)mallo