满意答案
srxgb
2018.10.16
采纳率:47% 等级:12
已帮助:18082人
#include #include typedef struct Lnode{ int data; struct Lnode *next; }Lnode,*Linklist; Linklist L; Linklist ListInit(Linklist Head, int n) { Linklist p; int i; for(i = 0; i n; i ++) { p = (Linklist)malloc(sizeof(Lnode)); p->next = Head; Head = p; } return Head; } Linklist ListReleas(Linklist Head) { Linklist p = Head; while(Head) { p = Head; Head=p->next; free(p); } return Head; } int main() { Linklist Head = NULL, p = NULL, q = NULL; int count[3] = {0}, n, inum; printf("输入节点数:"); scanf("%d", &n); Head = ListInit(Head, n); printf("输入每个节点值(共%d个):\n", n); p = Head; while( p != NULL ) { scanf("%d", &p->data); p = p->next; } //找出最小值 q = Head; p = Head; while( p != NULL ) { if(p->data q->data) q = p; p = p->next; } printf("最小值为:%d\n",q->data); //以下为第一次输出 p = Head; while( p != NULL ) { printf("%d ", p->data); p = p->next; } printf("\n"); //奇偶判断并进行处理 if(q->data % 2) { if(q->next) { inum = q->data; q->data = q->next->data; q->next->data = inum; } } else { while(q->next) { p = q->next; q->next = p->next; free(p); } } //以下为修改后输出 p = Head; while( p != NULL ) { printf("%d ", p->data); p = p->next; } printf("\n"); ListReleas(Head); return 0; }
00分享举报