数据结构【静态链表】
静态链表的初始化插入和删除操作#includestdio.h#includemalloc.h#defineMAXSIZE5typedefstructSlinknode{chardata;intnext;}*nodeptr;typedefstructSlinklist{nodeptr nodes;int*used;}*listptr;listptrinitlinklist(){//初始化listptr tempptr(listptr)malloc(sizeof(structSlinklist));tempptr-nodes(nodeptr)malloc(sizeof(structSlinknode)*MAXSIZE);tempptr-used(int*)malloc(sizeof(int)*MAXSIZE);tempptr-nodes[0].data ;tempptr-nodes[0].next-1;tempptr-used[0]1;for(inti1;iMAXSIZE;i){tempptr-used[i]0;}returntempptr;}voidprintlist(listptr paralistptr){intpparalistptr-nodes[0].next;while(p!-1){printf(%c,paralistptr-nodes[p].data);pparalistptr-nodes[p].next;}}voidinsertelement(listptr paralistptr,charparachar,intparaposition){intp,q,i;p0;for(i0;iparaposition;i){pparalistptr-nodes[p].next;if(p-1){printf(The position %d is beyond the scope of the list.\r\n,paraposition);return;}}for(i1;iMAXSIZE;i){if(paralistptr-used[i]0){printf(Space at %d allocated.\r\n,i);paralistptr-used[i]1;qi;break;}}if(iMAXSIZE){printf(No space.\r\n);return;}paralistptr-nodes[q].dataparachar;printf(linking\r\n);paralistptr-nodes[q].nextparalistptr-nodes[p].next;paralistptr-nodes[p].nextq;}voiddeleteelement(listptr paralistptr,charparachar){intp,q;p0;while((paralistptr-nodes[p].next!-1)(paralistptr-nodes[paralistptr-nodes[p].next].data!parachar)){pparalistptr-nodes[p].next;}if(paralistptr-nodes[p].next-1){printf(Cannot delete %c\r\n,parachar);return;}qparalistptr-nodes[p].next;paralistptr-nodes[p].nextparalistptr-nodes[paralistptr-nodes[p].next].next;paralistptr-used[q]0;}voidoutputMemory(listptr paralistptr){inti;printf(Now output the memory.\r\n);printf(The address of the list: %ld\r\n,paralistptr);printf(The address of nodes: %ld\r\n,paralistptr-nodes);printf(The address of used: %ld\r\n,paralistptr-used);printf(The contents the memory: [data, next, used]\r\n);for(i0;iMAXSIZE;i){printf([%c, %d, %d]\r\n,paralistptr-nodes[i].data,paralistptr-nodes[i].next,paralistptr-used[i]);}}voidappendInsertDeletetest(){listptr templistinitlinklist();printlist(templist);outputMemory(templist);insertelement(templist,H,0);outputMemory(templist);insertelement(templist,e,1);outputMemory(templist);insertelement(templist,l,2);outputMemory(templist);insertelement(templist,l,3);outputMemory(templist);insertelement(templist,o,4);printlist(templist);printf(Deleting e.\r\n);deleteelement(templist,e);outputMemory(templist);printf(Deleting a.\r\n);deleteelement(templist,a);printf(Deleting o.\r\n);deleteelement(templist,o);printlist(templist);insertelement(templist,x,2);printlist(templist);outputMemory(templist);}intmain(){appendInsertDeletetest();return0;}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2568081.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!