解题思路:真是坑人啊!明明是对的就是提交了好几次。
注意事项:注意得有return 0;还有就是想开头说的开始必须得是空表。还有代码不能加注释的我就加了出错了。
参考代码:
#include<stdio.h> #include<stdlib.h> typedef struct Line{ struct Line *prior; int data; struct Line *next; }line; line *initList1(line *head){ head=(line*)malloc(sizeof(line)); head->prior=head; head->next=head; // line *list1=head; // // //构成环形双向链表 // for(int i=1;i<n;i++){ // line *c=(line*)malloc(sizeof(line)); // c->next=NULL; // c->prior=NULL; // // list1->next=c; // c->prior=list1; // list1=list1->next; // } // // list1->next=head; // head->prior=list1; return head; } line *insertList1(line *head,int data,int add) { line *temp1=(line*)malloc(sizeof(line)); temp1->data=data; temp1->prior=NULL; temp1->next=NULL; if(add==1) { line *t,*t1; t=head; while(t->next!=head){ t=t->next; } t->next=temp1; temp1->prior=t; temp1->next=head; head->prior=temp1; head=temp1; } else { line *body=head; for(int i=1;i<add-1;i++){ body=body->next; } if(body->next==NULL) { body->next=temp1; temp1->prior=body; } else { body->next->prior=temp1; temp1->next=body->next; body->next=temp1; temp1->prior=body; } } return head; } line *deleteList1(line *head,int add){ line *temp=head; line *tail=head; if(add==1) { line *t; t=head; while(temp->next!=tail){ temp=temp->next; } temp->next=t->next; t->next->prior=temp; free(t); head=temp->next; } else { for(int i=1;i<add;i++){ tail=temp; temp=temp->next; } tail->next=temp->next; temp->next->prior=tail; free(temp); temp=tail->next; } return head; } void display(line *head) { line *temp; line *tail; temp=head; tail=head; while(temp->next!=tail){ printf("%d ",temp->data); temp=temp->next; } printf("\n"); } int main(){ line *p=NULL; p=initList1(p); int n; while(scanf("%d",&n)!=EOF){ if(n==1){ int m,elem; scanf("%d",&m); scanf("%d",&elem); p=insertList1(p,elem,m); } else if(n==2){ int m1; scanf("%d",&m1); p=deleteList1(p,m1); } else{ display(p); } } return 0; }
0.0分
0 人评分
2004年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:702 |
C语言程序设计教程(第三版)课后习题12.6 (C语言代码)浏览:816 |
C语言程序设计教程(第三版)课后习题5.8 (C语言代码)浏览:806 |
Tom数 (C++代码)浏览:868 |
简单的a+b (C语言代码)浏览:583 |
简单的a+b (C语言代码)浏览:564 |
C语言程序设计教程(第三版)课后习题6.9 (C语言代码)浏览:603 |
用筛法求之N内的素数。 (C语言代码)浏览:1385 |
C语言程序设计教程(第三版)课后习题8.6 (C语言代码)浏览:593 |
母牛的故事 (C语言代码)浏览:1045 |