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

作业社区

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

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; } 执行结果【图片】

得分 100
讨论题

慕运维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; } } 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); insert_tail_linklist(head,5); insert_tail_linklist(head,8); insert_tail_linklist(head,5); insert_tail_linklist(head,3); print_data_linklist(head); int ret = delete_data_linklist(head,3); printf("ret = %d\n",ret); print_data_linklist(head); //reverse_data_linklist(head); //print_data_linklist(head); return 0; } 结果: linux@linux:~/learn/chapter5/linklist$ ./a.out 1 5 3 7 9 5 8 5 3 delete 3 successfulret = 0 1 5 7 9 5 8 5

得分 100
讨论题

慕运维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); #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"); } 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_desc_order_linklist(head,1); insert_desc_order_linklist(head,5); insert_desc_order_linklist(head,3); insert_desc_order_linklist(head,7); insert_desc_order_linklist(head,9); print_data_linklist(head); return 0; }

得分 100
学习任务

慕运维8597106 的学生作业:

seqlist.h #ifndef __SEQLIST_H__ #define __SEQLIST_H__ #define MAX 10 struct student { char name[20]; int id; int age; }; typedef struct student data_type_t; typedef struct { data_type_t buf[MAX]; int n; } seqlist_t; extern seqlist_t *create_empty_seqlist(); extern int is_full_seqlist(seqlist_t *l); extern void insert_data_seqlist(seqlist_t *l,data_type_t data); extern void print_data_seqlist(seqlist_t *l); int is_empty_seqlist(seqlist_t *l); int delete_data_seqlist(seqlist_t *l,data_type_t data); #endif seqlist.c #include #include "seqlist.h" #include #include seqlist_t *create_empty_seqlist() { seqlist_t *p = (seqlist_t *) malloc(sizeof(seqlist_t)); if(NULL == p) { printf("malloc failed!\n"); return NULL; } memset(p,0,sizeof(seqlist_t)); p->n = 0; return p; } int is_full_seqlist(seqlist_t *l) { if(l->n >= MAX) { return 1; } return 0; } void insert_data_seqlist(seqlist_t *l,data_type_t data) { if(is_full_seqlist(l)) { printf("seqlist is full!\n"); return; } l->buf[l->n] = data; l->n++; } void print_data_seqlist(seqlist_t *l) { if(NULL != l) { for(int i = 0;i < l->n;i++) { printf("%s\t%d\t%d ",l->buf[i].name,l->buf[i].id,l->buf[i].age); printf("\n"); } } } int is_empty_seqlist(seqlist_t *l) { if(NULL == l || l->n == 0) { return 1; } return 0; } int delete_data_seqlist(seqlist_t *l,data_type_t data) { if(is_empty_seqlist(l)) { return 0; } int i = 0,j = 0; for(i = 0;i < l->n;i++) { if(l->buf[i].age != data.age){ l->buf[j] = l->buf[i]; j++; } } l->n = j; } main.c #include #include "seqlist.h" #include #include int main(int argc, const char *argv[]) { seqlist_t *p = create_empty_seqlist(); if(NULL != p) { data_type_t stu = {"zs",1,25}; insert_data_seqlist(p,stu); strcpy(stu.name,"lisi"); stu.id = 2; stu.age = 27; insert_data_seqlist(p,stu); strcpy(stu.name,"wangwu"); stu.id = 3; stu.age = 35; insert_data_seqlist(p,stu); strcpy(stu.name,"zhaoliu"); stu.id = 6; stu.age = 22; insert_data_seqlist(p,stu); strcpy(stu.name,"zhouqi"); stu.id = 7; stu.age = 24; insert_data_seqlist(p,stu); strcpy(stu.name,"liuba"); stu.id = 8; stu.age = 17; insert_data_seqlist(p,stu); strcpy(stu.name,"niu9"); stu.id = 9; stu.age = 35; insert_data_seqlist(p,stu); print_data_seqlist(p); data_type_t target; printf("请输入删除掉人员的目标年龄:"); scanf("%d",&target.age); delete_data_seqlist(p,target); printf("===删除年龄%d岁后===\n",target.age); print_data_seqlist(p); free(p); p = NULL; } return 0; } 执行结果 linux@linux:~/learn/chapter5/seqlist$ ./a.out zs 1 25 lisi 2 27 wangwu 3 35 zhaoliu 6 22 zhouqi 7 24 liuba 8 17 niu9 9 35 请输入删除掉人员的目标年龄:35 ===删除年龄35岁后=== zs 1 25 lisi 2 27 zhaoliu 6 22 zhouqi 7 24 liuba 8 17

得分 100
学习任务

慕运维8597106 的学生作业:

seqlist.h #ifndef __SEQLIST_H__ #define __SEQLIST_H__ #define MAX 10 struct student { char name[20]; int id; int age; }; typedef struct student data_type_t; typedef struct { data_type_t buf[MAX]; int n; } seqlist_t; extern seqlist_t *create_empty_seqlist(); extern int is_full_seqlist(seqlist_t *l); extern void insert_data_seqlist(seqlist_t *l,data_type_t data); extern void print_data_seqlist(seqlist_t *l); #endif seqlist.c #include #include "seqlist.h" #include #include seqlist_t *create_empty_seqlist() { seqlist_t *p = (seqlist_t *) malloc(sizeof(seqlist_t)); if(NULL == p) { printf("malloc failed!\n"); return NULL; } memset(p,0,sizeof(seqlist_t)); p->n = 0; return p; } int is_full_seqlist(seqlist_t *l) { if(l->n >= MAX) { return 1; } return 0; } void insert_data_seqlist(seqlist_t *l,data_type_t data) { if(is_full_seqlist(l)) { printf("seqlist is full!\n"); return; } l->buf[l->n] = data; l->n++; } void print_data_seqlist(seqlist_t *l) { if(NULL != l) { for(int i = 0;i < l->n;i++) { printf("%s\t%d\t%d ",l->buf[i].name,l->buf[i].id,l->buf[i].age); printf("\n"); } } } main.c #include #include "seqlist.h" #include int main(int argc, const char *argv[]) { seqlist_t *p = create_empty_seqlist(); if(NULL != p) { for(int i = 0;i < 11;i++) { data_type_t stu = {"zhangsan",i,100}; insert_data_seqlist(p,stu); } print_data_seqlist(p); free(p); p = NULL; } return 0; } 执行结果 seqlist is full! zhangsan 0 100 zhangsan 1 100 zhangsan 2 100 zhangsan 3 100 zhangsan 4 100 zhangsan 5 100 zhangsan 6 100 zhangsan 7 100 zhangsan 8 100 zhangsan 9 100

微信客服

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

帮助反馈 APP下载

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

公众号

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