您的位置:首页 > 其它

[c] 单链表创建,打印和反转

2014-11-03 11:44 302 查看
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>

typedef struct linknode{
int value;
struct linknode *pNext;
}Node,*pNode;

pNode createlist(pNode head, int length){
pNode p1;
pNode p2;
p1=(pNode)malloc(sizeof(Node));
p1->pNext=NULL;
p1->value=length;
if (head==NULL) head=p1;
while(length>1){
length--;
p2=(pNode)malloc(sizeof(Node));
p1->pNext=p2;
p2->value=length;
p2->pNext=NULL;
p1=p2;
}
return head;
}

void printlist(pNode head){
pNode temp;
temp=head;
while(temp!=NULL){
printf("%d",temp->value);
temp=temp->pNext;
}
return ;
}
pNode reverselist(pNode head){
pNode p,temp;
p=head->pNext;
head->pNext=NULL;
while(p!=NULL){
temp=p->pNext;
p->pNext=head;
head=p;
p=temp;
}
return head;
}

int main(){
pNode head=NULL;
int length;
scanf("%d", &length);
if(length<=0) return 0;
head=createlist(head,length);
printlist(head);
head=reverselist(head);
printlist(head);
system("pause");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: