搜狐面试一题

进修社 人气:1.76W
搜狐面试一题
搜狐面试的'题目,临时写了这个程序,今天拿出来和大家分享,希望能有助于大家找到好的工作。
1. 编程,将一个链表倒序。#include
#include
typedef struct LinkList
{
int d;
struct LinkList *next;
}Lnode;
//链表倒序
void Daoxu(Lnode **Head)
{
Lnode *q,*p,*r,*l;
p=*Head;
q=p->next;
p->next=NULL;
while(q)
{
r=q->next;
q->next=p;
p=q;
q=r;
}
*Head=p;
l=*Head;
while(l)
{
printf("%dn",l->d);
l=l->next;
}
}
//建立头结点
void Init(Lnode **Head)
{
*Head=(Lnode *)malloc(sizeof(Lnode));
(*Head)->next=NULL;
(*Head)->d=0;//假设头结点中存储的数据是0.
}
//建立链表,输入-1退出链表
void Link(Lnode **Head)
{
Lnode *p,*q;
int i;
do{
p=(Lnode*)malloc(sizeof(Lnode));
scanf("%d",&i);
if(i==-1)
break;
p->d=i;
p->next=NULL;
q=*Head;
while(q->next)
q=q->next;
q->next=p;
}while(1);
}
void main()
{
Lnode *Head,*q;
Init(&Head);
Link(&Head);
q=Head;
while(q)
{
printf("%dn",q->d);
q=q->next;
}
printf("nn");
Daoxu(&Head);
}
   这个程序是在VC6.0下已经编译通过了,本程序是本人手写,思路是:建立头结点,创建链表,链表倒序。可能存在这样那样的问题,但是我觉的应付面试应该没有什么大的问题。
TAGS:搜狐 面试