C语言:单链表的创建,打印及销毁
来源:互联网 发布:非线性最优化确定参数 编辑:程序博客网 时间:2024/05/01 15:10
#include <stdio.h>#include <stdlib.h>#define MAX 10struct List{int number;char name[MAX];struct List *next;};typedef struct List Node;typedef Node *Link;/********************* *释放链表 ********************/void free_list(Link head){Link pointer;while(head != NULL){pointer = head;head = head->next;free(pointer);}}/********************* *输出链表 ********************/void print_list(Link head){Link pointer; //节点声明pointer = head; //将pointer节点设为首节点while(pointer != NULL){printf("Data number = %d\n", pointer->number);printf("Data name = %s\n", pointer->name);pointer = pointer->next;}}/********************* *建立链表*********************/Link create_list(Link head){int datanum;char dataname[MAX];Link new;Link pointer;int i;head = (Link)malloc(sizeof(Node));if(head == NULL){printf("memory allocate failure!\n");}else{datanum = 1;printf("please input the dataname: ");scanf("%s", dataname);head->number = datanum; //定义首节点数据for(i = 0; i < MAX; ++i){head->name[i] = dataname[i];}head->next = NULL;pointer = head; //pointer 指针为首节点while(1){datanum++;new = (Link)malloc(sizeof(Node));printf("please input the dataname: ");scanf("%s", dataname);if(dataname[0] == '0') //输入0则结束break;new->number = datanum;for(i = 0; i < MAX; ++i){new->name[i] = dataname[i];}new->next = NULL;pointer->next = new; //将新节点串联在链表尾端pointer = new; //链表尾端节点为新节点}}return head;}int main(){Link head;//声明节点head = create_list(head);if(head != NULL){print_list(head);free_list(head);}return 0;}
0 0
- C语言:单链表的创建,打印及销毁
- C语言中栈帧的创建与销毁
- 动态链表的增删改查,打印销毁等基本操作及代码模块化(完整C语言代码!)
- C语言多线程基础-01-线程的创建与销毁
- C++ 创建/销毁/逆置/打印 单链表
- c++builder 动态创建控件及销毁
- 算法导论 之 红黑树 - 打印、销毁 - 非递归[C语言]
- 模态非模态窗口的创建及销毁
- 非模态对话框的创建及销毁
- 【C语言】栈和栈帧,以及栈帧创建和销毁的过程
- C语言--链表的销毁
- 一个链表创建、反转、打印的C语言代码
- c实现带表头的单链表的创建、测长及打印
- 面试题一 C/C++面试秘笈之单链表的创建,增删改查及打印
- 函数的调用及栈帧的创建和销毁
- 函数的调用及栈帧的创建和销毁
- delphi中form创建及销毁事件的处理顺序
- Servlet 中 session 的创建、销毁及监听
- centos7 挂载ntfs盘 usb移动硬盘
- 枚举Enum用法详解
- 蜂鸣器
- 华为OJ放苹果&&整数划分
- 103.Binary Tree Zigzag Level Order Traversal
- C语言:单链表的创建,打印及销毁
- Android 看到什么写什么——关于有时候Android studio编写的时候大R丢失并且import出不来的问题
- Day31、未决信号、有名管道、IPC进程间通讯(消息队列)
- shFlags Introduction
- ibm_system 3650安装
- 数据库创建(CREATE),数据库的修改(Update),数据库的删除(ALERT)
- poj2553 The Bottom of a Graph--Kosaraju算法 & 缩点 & 强连通分量
- Maven之(一)Maven是什么
- 完整版点名器