您的位置:首页 > 编程语言 > C语言/C++

C语言单链表简单实现

2013-03-23 20:21 417 查看
#include<stdio.h>
#include<stdlib.h>

typedef int item;

typedef struct node {
item data;
struct node *next;
}Slist;

Slist* SL_creat();
void SL_print(Slist*);
void SL_lenght(Slist*);

int main() {
Slist *head,*q;
q=head=SL_creat();
SL_print(head);
head=q;
SL_lenght(head);
return 0;
}

//创建链表
Slist* SL_creat() {
Slist *head,*r,*s;
int i;
head=(Slist *)malloc(sizeof(Slist));
s=head;
while(scanf("%d",&i),i) {
r=(Slist *)malloc(sizeof(Slist));
r->data=i;
s->next=r;
s=r;
}
r->next=NULL;
return head;
}

//遍历链表
void SL_print(Slist *head) {
head=head->next;
while(head) {
printf("%d ",head->data);
head=head->next;
}
putchar('\n');
}

//求链表长度
void SL_lenght(Slist *head){
int i=0;
while(head) {
head=head->next;
i++;
}
printf("链表的长度为:%d\n",i);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: