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

作业社区

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

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

慕尼黑0001808 的学生作业:

//创建一个单向链表,把1,5,3,7,9无序数据要求按从大到小的方式利用有序插入的方式插入链表,并输出。 //linklist.h #ifndef __LINKLIST_H__ #define __LINKLIST_H__ #include #include #include typedef int datatype_t; typedef struct node{ datatype_t data; struct node * next; }linknode_t; extern linknode_t * create_empty_linklist(); extern void insert_order_linklist(linknode_t * head,datatype_t data); extern void reverse_data_linklist(linknode_t * head); extern int is_empty_linklist(linknode_t * head); extern void printf_data_linklist(linknode_t * head); extern void free_linklist(linknode_t * head); #endif // linklist.c #include "linklist.h" //创建空链表 linknode_t * create_empty_linklist() { linknode_t * head = NULL; head = (linknode_t *)malloc(sizeof(linknode_t)); if(NULL == head) { printf("malloc linknode_t fail\n"); return NULL; } memset(head,0,sizeof(linknode_t)); head->next = NULL; return head; } void insert_order_linklist(linknode_t * head,datatype_t data) { linknode_t * temp = NULL; temp = (linknode_t *)malloc(sizeof(linknode_t)); if(NULL == temp) { printf("temp malloc fail\n"); return; } temp->data = data; linknode_t * p = head; while(p->next!=NULL && data > p->next->data) { p = p->next; } temp->next = p->next; p->next = temp; } void printf_data_linklist(linknode_t * head) { linknode_t * p = head; while(p->next!=NULL) { printf("%d ",p->next->data); p = p->next; } printf("\n"); } void free_linklist(linknode_t * head) { if(head == NULL)return; linknode_t * p = head; linknode_t * temp = NULL; while(p->next!=NULL) { temp = p; p = p->next; free(temp); temp = NULL; } free(p); p = NULL; } int is_empty_linklist(linknode_t * head) { return head->next == NULL?1:0; } void reverse_data_linklist(linknode_t * head) { 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; } } //main.c #include "linklist.h" int main() { linknode_t * head = NULL; head = create_empty_linklist(); datatype_t arr[] = {1,5,3,7,9}; for(int i = 0;i < sizeof(arr)/sizeof(arr[0]);i++) { insert_order_linklist(head,arr[i]); } printf_data_linklist(head); reverse_data_linklist(head); printf_data_linklist(head); free_linklist(head); return 0; }

首页上一页1234567下一页尾页
微信客服

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

帮助反馈 APP下载

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

公众号

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