您的位置:首页 > 其它

c实现带表头的单链表的创建、测长及打印

2015-03-27 21:10 337 查看
#include <iostream>
#include <malloc.h>
using namespace std;
typedef struct student
{
int data;
struct student *next;
} node;
//带头节点
node *create(){
node *head, *p, *s;
int x, cycle=1;
head = (node *)malloc(sizeof(node));
p=head;
while(cycle){
printf("please input the data(0 is end):");
scanf("%d",&x);
if(x!=0){
s= (node *)malloc(sizeof(node));
s->data=x;
s->next=NULL;
printf("%d\n",s->data);
p->next=s;
p=s;
}
else
cycle=0;
}
return head;
}

int length(node* head) {
int counter=0;
head = head->next;
while (head!=NULL){
counter++;
head=head->next;
}
return counter;
}

void print(node *head){
head = head->next;
while (head!=NULL){
printf("%d ", head->data);
head = head->next;
}
printf("\n");
}

int main()
{
node *head;
head = create();
printf("the length of list:%d \n" , length(head));
print(head);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: