为了账号安全,请及时绑定邮箱和手机立即绑定

作业社区

探索学习新天地,共享知识资源!

0 提交作业
0 布置作业
0 满分作业
得分 99
学习任务

慕运维8597106 的学生作业:

linklist.h #ifndef __LINKLIST__H_ #define __LINKLIST__H_ typedef int datatype_t; typedef struct node { datatype_t data; struct node *next; } linknode_t; extern linknode_t *create_empty_linklist(); extern void insert_head_linklist(linknode_t *head,datatype_t data); extern void insert_tail_linklist(linknode_t *head,datatype_t data); extern void insert_order_linklist(linknode_t *head,datatype_t data); extern void print_data_linklist(linknode_t *head); extern void insert_desc_order_linklist(linknode_t *head,datatype_t data); extern int is_empty_linklist(linknode_t *head); extern int delete_data_linklist(linknode_t *head,datatype_t data); extern void reverse_data_linklist(linknode_t *head); extern void clean_up_linklist(linknode_t *head); #endif linklist.c #include #include "linklist.h" #include #include linknode_t *create_empty_linklist() { linknode_t *head = NULL; head = (linknode_t *)malloc(sizeof(linknode_t)); if(NULL == head){ printf("malloc failed!\n"); return NULL; } memset(head,0,sizeof(linknode_t)); return head; } void insert_head_linklist(linknode_t *head,datatype_t data) { linknode_t *temp = NULL; temp = (linknode_t *)malloc(sizeof(linknode_t)); if(NULL == temp){ printf("malloc failed!\n"); } temp->data = data; temp->next = head->next; head->next = temp; } void insert_tail_linklist(linknode_t *head,datatype_t data) { linknode_t *p = head; linknode_t *temp = NULL; temp = (linknode_t *)malloc(sizeof(linknode_t)); if(NULL == temp){ printf("malloc failed!\n"); } while(p->next != NULL) { p = p->next; } temp->data = data; temp->next = p->next; p->next = temp; } void insert_order_linklist(linknode_t *head,datatype_t data) { linknode_t *p = head; linknode_t *temp = NULL; temp = (linknode_t *)malloc(sizeof(linknode_t)); if(NULL == temp){ printf("malloc failed!\n"); } while(p->next != NULL && p->next->data < data) { p = p->next; } temp->data = data; temp->next = p->next; p->next = temp; } void insert_desc_order_linklist(linknode_t *head,datatype_t data) { linknode_t *p = head; linknode_t *temp = NULL; temp = (linknode_t *)malloc(sizeof(linknode_t)); if(NULL == temp){ printf("malloc failed!\n"); } while(p->next != NULL && p->next->data > data) { p = p->next; } temp->data = data; temp->next = p->next; p->next = temp; } void print_data_linklist(linknode_t *head) { linknode_t *p = head; while(p->next != NULL) { printf("%d ",p->next->data); p = p->next; } printf("\n"); } int is_empty_linklist(linknode_t *head) { return NULL == head->next ? 1 : 0; } int delete_data_linklist(linknode_t *head,datatype_t data) { int flag = 0; if(is_empty_linklist(head)) { return -1; } linknode_t *p = head; linknode_t *q = NULL; while(p->next != NULL) { if(p->next->data == data) { q = p->next; p->next = q->next; free(q); q = NULL; flag = 1; }else { p = p->next; } } if(flag == 0){ return -2; }else{ printf("delete %d successful",data); } return 0; } void reverse_data_linklist(linknode_t *head) { if(is_empty_linklist(head)){ return; } linknode_t *p = NULL; linknode_t *q = NULL; p = head->next->next; head->next->next = NULL; while(p != NULL) { q = p->next; p->next = head->next; head->next = p; p = q; } } void clean_up_linklist(linknode_t *head) { linknode_t *p = NULL; linknode_t *q = NULL; p = head; while(p != NULL) { q = p->next; print_data_linklist(p); free(p); p = q; } } main.c #include #include "linklist.h" int main(int argc, const char *argv[]) { linknode_t *head = create_empty_linklist(); if(NULL == head) { return -1; } insert_tail_linklist(head,1); insert_tail_linklist(head,5); insert_tail_linklist(head,3); insert_tail_linklist(head,7); insert_tail_linklist(head,9); print_data_linklist(head); reverse_data_linklist(head); printf("逆序后的链表\n"); print_data_linklist(head); printf("执行清除链表\n"); clean_up_linklist(head); printf("清除完成之后打印\n"); print_data_linklist(head); return 0; } 执行结果【图片】

微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号