C 语言 链表的创建与打印

/*包含的头文件*/ #include<stdio.h> #include<stdlib.h> /*定义一个表示链表的结构体指针*/ struct list int id; /*标识这个元素方便查找*/ char d

/* 包含的头文件 */

#include <stdio.h>

#include <stdlib.h>

/* 定义一个表示链表的结构体指针 */

struct

list

int

id;

/* 标识这个元素方便查找 */

char

data[

20

];

/* 链表中包含的元素 */

struct

list

*next;

/* 指向下一个链表的指针 */

};

/* 定义一个链表头部 */

static

struct

list

*list_head = NULL;

/* 为了保证每一个链表元素的id不同,特意把id定义成一个全局静态变量 */

static

int

list_id =

/** 将指定元素插入到聊表尾部 * head : 表示要插入元素的链表的头部的地址 * list : 表示要插入到链表中的元素 */

static

void

list_add(

struct

list

**head,

struct

list

list

) {

struct

list

*temp;

/* 判断链表是否为空 */

if

(NULL == *head) {

/* 为空 */

*head =

list

; (*head)->next = NULL; }

else

/* 不为空 */

temp = *head;

while

(temp) {

if

(NULL == temp->next) { temp->next =

list

list

->next = NULL; } temp = temp->next; } } }

/** 遍历一个链表,打印链表中每个元素所包含的数据 * head : 表示要遍历的链表的头部的指针 */

static

void

list_print(

struct

list

**head) {

struct

list

*temp; temp = *head;

printf

“list information :\n”

);

while

(temp) {

printf

“\tlist %d : %s\n”

, temp->id, temp->data); temp = temp->next; } }

/* 主函数,程序的入口 */

int

main(

int

argc,

char

*argv[]) {

int

i =

struct

list

*lists = NULL;

/* 分配10个元素 */

lists =

malloc

sizeof

struct

list

) *

10

);

if

(NULL == lists) {

printf

“malloc error!\n”

);

return

; }

/* 将分配的10个元素依次填充数据并加入到链表当中 */

for

(i =

; i <

10

; i++) { lists[i].id = list_id++;

sprintf

(lists[i].data,

“TECH-PRO – %d”

, i); list_add(&list_head, &lists[i]); }

/* 遍历链表,把链表中每个元素的信息都打印出来 */

list_print(&list_head);

return

; }

C 语言 链表的创建与打印

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/86308.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信