欢迎来到一句话经典语录网
我要投稿 投诉建议
当前位置:一句话经典语录 > 心得体会 > 链表的实现与编程心得体会

链表的实现与编程心得体会

时间:2020-06-22 11:29

C语言编程:实现对链表数据的输出~~

output(struct linklist *head){struct linklist *p;p = head;while(p){printf(%d , p->data);p = p->next;}}

JAVA怎样用链表来实现冒泡排序,我需要整个编程过程,谢谢

语法错误已经全部改了,插入算法还有逻辑错误,现在没时间修改了#include#includetypedef struct DULNODE{int data;struct DULNODE *priou;struct DULNODE *next;}DULNODE,*Dulinklist;Dulinklist creat(Dulinklist L)\\\/\\\/创建{int node;Dulinklist p;L=(Dulinklist)malloc(sizeof(DULNODE));L->next=NULL;L->priou=NULL;printf(\\\ please input the node(end with 0));scanf(%d,&node);while(node!=0){p=(Dulinklist)malloc(sizeof(DULNODE));p->data=node;p->next=L->next;L->next=p;p->priou=L;printf(\\\ please input the node(end with 0):);scanf(%d,&node);}return L;}Dulinklist insert(Dulinklist L,int i,int x)\\\/\\\/插入函数{int j;Dulinklist p,s;p=L;j=0;while(p!=NULL&&jnext;++j;}if(!(s=(Dulinklist)malloc(sizeof(DULNODE))))printf(\\\ error\\\ );s->data=x;p->next=s->next;s->next=p->next;s->next->priou=s->priou;p->next=s;return L;}Dulinklist Delete(Dulinklist L,int i){int j,x;Dulinklist p;p=L,j=0;while(p->next!=NULL&&jnext;++j;}x=p->data;p->priou->next=p->next;p->next->priou=p->priou;printf(the delete value is %d,x);free(p);return L;}void display(Dulinklist L)\\\/\\\/输出{Dulinklist p;p=L->next;while(p!=NULL){printf(%d,p->data);p=p->next;printf(\\\ );}}int main()\\\/\\\/主函数{int i,x;Dulinklist L;L=creat(L);display(L);printf(\\\ please input the position you want to insert:);scanf(%d,&i);printf(\\\ input the node you want to insert:);scanf(%d,&x);L=insert(L,i,x);display(L);printf(\\\ please inout the node position you want to delete:);scanf(%d,&i);L=Delete(L,i);display(L);}

C语言 编程实现静态链表的建立和输出

typedef int Elemtype;typedef int status;#define OVERFLOW -2#define OK 1#define ERROR -1#include stdio.h#include stdlib.htypedef struct LNode { Elemtype data; struct LNode *next;}*linklist;\\\/\\\/构造链表void Create_Linklist(linklist &L){ linklist p; p=(linklist)malloc(sizeof(LNode)); if(!p) exit(OVERFLOW); L=p; L->next =NULL;}\\\/\\\/节点插入void Insert_Linklist(linklist &L){ linklist p; int n,i; printf(请输入插入节点的个数n: ); scanf(%d,&n); getchar(); for(i=n;i>0;i--) { p=(linklist )malloc(sizeof(LNode)); scanf(%d,&p->data); p->next=L->next ; L->next =p; }}\\\/\\\/遍历输出并输出长度 status Visit_linklist(linklist &L){ linklist p; int i=1; p=L->next ; if(L->next==NULL) return ERROR; while(p->next !=NULL) { printf(%d ,p->data ); p=p->next ; i++; } printf(%d\\\ ,p->data ); printf(长度为:%d\\\ ,i); return OK;} \\\/\\\/查找值为x的直接前驱结点q并输出 void Search_linklist(linklist &L) { int x,k=0; linklist p=L,q; printf(输入x: ); scanf(%d,&x); getchar(); if(L->next ==NULL) printf(该表为空

\\\ ); while(p->next!=NULL) { q=p; if(p->next ->data ==x) { printf(%d ,q->data ); k=1; } p=p->next ; } if(p->next &&p->data ==x) { printf(%d ,p->data ); k=1; } if(k==0) printf(未找到值为%d的结点\\\ ,&x); printf(\\\ ); } \\\/\\\/删除节点 status Delete_linklist(linklist &L) { linklist p,q; int k=0,x; printf(请输入删除节点的值x: ); scanf(%d,&x); getchar(); if(L->next ==NULL) return ERROR; p=L; q=L->next ; while(q!=NULL) if(q->data ==x) { k=1; p=q ; p->next =q->next ; free(q); q=p->next ; } else { p=q ; q=p->next ; } if(k==0) printf(表中没有值为%d的结点

\\\ ,&x); return OK; } \\\/\\\/链表逆置 void ListInverse_linkliast(linklist &L) { linklist k,p,q; p=L; while (p->next !=NULL) { p=p->next ; } k=p; while (L->next !=p) { q=L->next ; L->next = q->next ; k->next =q; } } \\\/\\\/链表奇偶分解 void Break_linklist (linklist &La,linklist &Lb) { linklist p,q; p=La->next; q=Lb; while(p->next!=NULL) { if(p->data %2==0) { q->next =p; q=q->next ; } p=p->next ; } if(p->data %2==0) { q->next =p; q=q->next ; } } \\\/\\\/主菜单 void main() { linklist L1,L2; printf( (1) 建立带头节点的单链表\\\ ); printf( (2) 插入节点\\\ ); printf( (3) 计算链表长度并输出单链表\\\ ); printf( (4) 查找值为x的直接前驱结点并输出其值\\\ ); printf( (5) 删除节点值为x的结点\\\ ); printf( (6) 逆置单链表结点\\\ ); printf( (7) 单链表奇偶分解\\\ ); int choice; printf( 请输入选择:); while(scanf(%d,&choice)) { getchar(); printf(\\\ \\\ ); switch(choice) { case 1: Create_Linklist(L1); break; case 2: Insert_Linklist(L1); break; case 3: Visit_linklist(L1); break; case 4: Search_linklist(L1); break; case 5: Delete_linklist(L1); break; case 6: ListInverse_linkliast(L1); break; case 7: Create_Linklist(L2); Break_linklist (L1,L2); break; default: printf( 输入有误

); break; } } }

编程实现线性表的链式存储结构,即链表,实现链表的建立和输出

程序代码:#include #include #include struct node{ int num; char name[10],Class[15]; struct node *next;}*head,*p,*q;int main(){ int i,num; char name[10],Class[15]; head=(struct node*)malloc(sizeof(struct node)); memset(name,'\\\\0',sizeof(name)); memset(Class,'\\\\0',sizeof(Class)); printf(信息输入:\\\ ); scanf(%d%s%s,&num,name,Class); head->num=num; strcpy(head->name,name); strcpy(head->Class,Class); head->next=NULL; for(i=0;i<5;i++) { memset(name,'\\\\0',sizeof(name)); memset(Class,'\\\\0',sizeof(Class)); scanf(%d%s%s,&num,name,Class); p=(struct node*)malloc(sizeof(struct node)); p->num=num; strcpy(p->name,name); strcpy(p->Class,Class); p->next=head; head=p; \\\/\\\/不带头结点的头插法 } printf(信息输出:\\\ ); p=head; while(p) { if(p->num<10) printf(0); printf(%d %s %s\\\ ,p->num,p->name,p->Class); p=p->next; } p=head; while(p) \\\/\\\/释放空间 { q=p; p=p->next; free(q); } return 0;}输入:01 张三 初二(1)班02 李四 初二(1)班03 王五 初二(1)班04 钱六 初二(1)班05 孙七 初二(1)班06 赵八 初二(1)班输出:06 赵八 初二(1)班05 孙七 初二(1)班04 钱六 初二(1)班03 王五 初二(1)班02 李四 初二(1)班01 张三 初二(1)班

声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。联系xxxxxxxx.com

Copyright©2020 一句话经典语录 www.yiyyy.com 版权所有

友情链接

心理测试 图片大全 壁纸图片