尾插法建立单向链表 C语言实现
2016-01-12 20:59
731 查看
代码实现
#include<stdlib.h> #include<stdio.h> //定义linklist结构体类型 typedef struct linklist { int data; struct linklist *next; }list,*plist;//建立一个结构体list及linklist结构体类型指针 //尾插法建链表 void tail_insert(plist *head, int num)/**/ { plist p_new = (plist)malloc(sizeof(list)); p_new->data = num; /*新元素data设为num*/ p_new->next = NULL; /*将新元素next置为空*/ plist temp = *head; /*定义一个临时指针变量指向表头*/ if (NULL == *head) /*head为空则赋予p_new为第一个新结点*/ { *head = p_new; p_new->next = NULL; } else /*若非空*/ { while (temp->next != NULL) /*最终让temp指向尾结点*/ { temp = temp->next; } temp->next = p_new; /*将尾结点temp的next设为p_new,即将p_new设为尾结点*/ } } /*打印输出链表*/ void print_list(plist head) { plist elem = head; while (elem!=NULL) { printf("%d ",elem->data); elem = elem->next; } printf("\n"); } void main() { int number; plist head; head = NULL;//初始化表头为空 printf("input some numbers:\n"); scanf("%d",&number); while (number != -1)//输入-1终止输入循环 { tail_insert(&head, number); scanf("%d", &number); } printf("打印输出链表:\n"); print_list(head); system("pause"); }
相关文章推荐
- C语言——转义字符
- 基于Windows Socket的安全通信(C++实现,附源码)
- C++中const相关知识
- c++ 设计模式 代理
- 编程小白眼中的KMP-----C++实现
- c语言结构体对齐
- 头插法建立单向链表 C语言实现
- C++的函数重载
- 游戏客户器端通信框架(C++与Socket)
- c++ 使用socket实现C/S端文件的下载传输
- C++ socket编程 实现服务端与客户端的通讯
- C++ primer 第三章 标准库类型
- iOS 学习第六天 C语言 进制转换
- 一个C++面试题目
- C++中Vector清空
- 经验分享:如何成为一名优秀的高级C++程序员?
- C++不确定行为
- C++:面向对象编程(封装、继承、多态等)
- C++智能指针--weak_ptr
- C++的高级用法