数据结构C语言上机题程序
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1
printf("插入元素后的链表为:\n"); p=L->next->next; for( i=0;i<NewL;i++)/* */ { printf("%d\n",p->data); p=p->next; } printf("6.请输入一个位序值 m 和 n:\n"); scanf("%d%d",&m,&n); Del_LinkList( L,m); Del_LinkList( L,n); NewL=Length_LinkList(L);/* */ printf("链表新长度为%d\n",NewL); p=L->next; for(i=0;i<NewL;i++)/* */ { p=p->next; printf("%d\n",p->data); } } LinkList Creat_List() /*带头结点的单链表尾插法创建链表*/ { LinkList L; Lnode * R; L= (LinkList)malloc(sizeof(Lnode)); L->next=NULL; int x; R=L; while(x!=-1) { R->next=(LinkList)malloc(sizeof(Lnode)); R->next->data=x; R=R->next; printf("请输入数据\n"); scanf("%d",&x); } R->next=NULL; return L; } int Length_LinkList(LinkList L) /*带头结点的单链表的长度*/ { Lnode * p=L; int j=-1; while(p->next)
2
{ p=p->next; j++; } return j; } Lnode * Get_LinkList(LinkList L,int a) /*带头结点的单链表输出位序为 a 元素*/ { Lnode * p=L; int j=-1; while(p->next!=NULL && j<a) { p=p->next; j++;} if(j==a) return p; else return NULL; } int Locate_LinkList(LinkList L,int x) /*带头结点的单链表找到值为 x 的结点*/ { int j=0; Lnode * p=L->next; while(p!=NULL&&p->data!=x) { p=p->next; j++;} if (p->data==x) return j; else return 0; } void Insert_LinkList(LinkList L,int b,int x)/*插入新结点*/ { Lnode * p,*s; p=Get_LinkList(L,b-1); if(p==NULL) { printf("参数错误"); } else { s=(LinkList)malloc(sizeof(Lnode)); s->data=x;
5
3
s->next=p->next; p->next=s; } } void Del_LinkList(LinkList L,int i) { Lnode *p,*s; p=Get_LinkList( L,i);/* */ if(p==NULL) { printf("第个结点不存在"); } else if(p->next==NULL) { printf("第个结点不存在"); } else { s=p->next; p->next=s->next; free(s); } } LinkList Creat_LinkList1(LinkList L)/*将链表倒置*/ { LinkList l; Lnode * s,* p; int x,Length; Length=Length_LinkList(L); l=(LinkList)malloc(sizeof(Lnode)); l->next=NULL; p=L->next; for(int i=0;i<Length;i++)/* */ { p=p->next; x=p->data; s=(LinkList)malloc(sizeof(Lnode)); s->data=x; s->next=l->next; l->next=s; } return l; }
4
# include <stdio.h> # include <math.h> void main() { int n,i; void primenum(int n); printf("请输入一Biblioteka Baidu整数\n"); scanf("%d", &n); for(i=n;i>1;i--) primenum(i); } void primenum(int n) { int j,k,cont; k=sqrt(n); for(j=2;j<=k;j++) if(n%j==0) break; if(j>k) printf("%d\n",n); }
# include <stdio.h> # include <malloc.h> typedef struct node { int data; struct node * next; } Lnode ,* LinkList; void main() { int Length,a,x,w,b,NewL,m ,n; Lnode * L,* W,*p,*l; LinkList Creat_List(); int Length_LinkList(LinkList L); Lnode * Get_LinkList(LinkList L,int a); int Locate_LinkList(LinkList L,int x); void Insert_LinkList(LinkList L,int b,int x); void Del_LinkList(LinkList L,int i); LinkList Creat_LinkList1(LinkList L); L=Creat_List(); printf("7.将链表倒置后为:\n"); l=Creat_LinkList1(L); NewL=Length_LinkList(l); p=l->next; for(int i=0;i<=NewL;i++)/* */ { printf("%d\n",p->data); p=p->next; } Length=Length_LinkList(L); printf("2.链表长度为%d\n",Length); printf("3.请输入一个位序值 a:\n"); scanf("%d",&a); W=Get_LinkList( L,a); printf("%d\n",W->data); printf("4.请输入元素 x 的值:\n"); scanf("%d",&x); w=Locate_LinkList( L,x); printf("%d\n",w); printf("5.请输入一个位序值 b:\n"); scanf("%d",&b); Insert_LinkList( L,b,500); NewL=Length_LinkList(L);/* */ printf("插入元素后的链表新长度为%d\n",NewL);
printf("插入元素后的链表为:\n"); p=L->next->next; for( i=0;i<NewL;i++)/* */ { printf("%d\n",p->data); p=p->next; } printf("6.请输入一个位序值 m 和 n:\n"); scanf("%d%d",&m,&n); Del_LinkList( L,m); Del_LinkList( L,n); NewL=Length_LinkList(L);/* */ printf("链表新长度为%d\n",NewL); p=L->next; for(i=0;i<NewL;i++)/* */ { p=p->next; printf("%d\n",p->data); } } LinkList Creat_List() /*带头结点的单链表尾插法创建链表*/ { LinkList L; Lnode * R; L= (LinkList)malloc(sizeof(Lnode)); L->next=NULL; int x; R=L; while(x!=-1) { R->next=(LinkList)malloc(sizeof(Lnode)); R->next->data=x; R=R->next; printf("请输入数据\n"); scanf("%d",&x); } R->next=NULL; return L; } int Length_LinkList(LinkList L) /*带头结点的单链表的长度*/ { Lnode * p=L; int j=-1; while(p->next)
2
{ p=p->next; j++; } return j; } Lnode * Get_LinkList(LinkList L,int a) /*带头结点的单链表输出位序为 a 元素*/ { Lnode * p=L; int j=-1; while(p->next!=NULL && j<a) { p=p->next; j++;} if(j==a) return p; else return NULL; } int Locate_LinkList(LinkList L,int x) /*带头结点的单链表找到值为 x 的结点*/ { int j=0; Lnode * p=L->next; while(p!=NULL&&p->data!=x) { p=p->next; j++;} if (p->data==x) return j; else return 0; } void Insert_LinkList(LinkList L,int b,int x)/*插入新结点*/ { Lnode * p,*s; p=Get_LinkList(L,b-1); if(p==NULL) { printf("参数错误"); } else { s=(LinkList)malloc(sizeof(Lnode)); s->data=x;
5
3
s->next=p->next; p->next=s; } } void Del_LinkList(LinkList L,int i) { Lnode *p,*s; p=Get_LinkList( L,i);/* */ if(p==NULL) { printf("第个结点不存在"); } else if(p->next==NULL) { printf("第个结点不存在"); } else { s=p->next; p->next=s->next; free(s); } } LinkList Creat_LinkList1(LinkList L)/*将链表倒置*/ { LinkList l; Lnode * s,* p; int x,Length; Length=Length_LinkList(L); l=(LinkList)malloc(sizeof(Lnode)); l->next=NULL; p=L->next; for(int i=0;i<Length;i++)/* */ { p=p->next; x=p->data; s=(LinkList)malloc(sizeof(Lnode)); s->data=x; s->next=l->next; l->next=s; } return l; }
4
# include <stdio.h> # include <math.h> void main() { int n,i; void primenum(int n); printf("请输入一Biblioteka Baidu整数\n"); scanf("%d", &n); for(i=n;i>1;i--) primenum(i); } void primenum(int n) { int j,k,cont; k=sqrt(n); for(j=2;j<=k;j++) if(n%j==0) break; if(j>k) printf("%d\n",n); }
# include <stdio.h> # include <malloc.h> typedef struct node { int data; struct node * next; } Lnode ,* LinkList; void main() { int Length,a,x,w,b,NewL,m ,n; Lnode * L,* W,*p,*l; LinkList Creat_List(); int Length_LinkList(LinkList L); Lnode * Get_LinkList(LinkList L,int a); int Locate_LinkList(LinkList L,int x); void Insert_LinkList(LinkList L,int b,int x); void Del_LinkList(LinkList L,int i); LinkList Creat_LinkList1(LinkList L); L=Creat_List(); printf("7.将链表倒置后为:\n"); l=Creat_LinkList1(L); NewL=Length_LinkList(l); p=l->next; for(int i=0;i<=NewL;i++)/* */ { printf("%d\n",p->data); p=p->next; } Length=Length_LinkList(L); printf("2.链表长度为%d\n",Length); printf("3.请输入一个位序值 a:\n"); scanf("%d",&a); W=Get_LinkList( L,a); printf("%d\n",W->data); printf("4.请输入元素 x 的值:\n"); scanf("%d",&x); w=Locate_LinkList( L,x); printf("%d\n",w); printf("5.请输入一个位序值 b:\n"); scanf("%d",&b); Insert_LinkList( L,b,500); NewL=Length_LinkList(L);/* */ printf("插入元素后的链表新长度为%d\n",NewL);