当前位置: 首页 > news >正文

网站怎么自己做手机关联网站

网站怎么自己做,手机关联网站,重庆网站推广团队,网站设计师薪资参考链表的物理存储结构是用一组地址任意的存储单元存储数据的。不像顺序表占据连续的一段内存空间#xff0c;而是将存储单元分散在内存的任意地址上。 链表结构中#xff0c;每个数据元素记录都存放到链表的一个节点#xff08;node#xff09;中#xff0c;而每个节点之间由…链表的物理存储结构是用一组地址任意的存储单元存储数据的。不像顺序表占据连续的一段内存空间而是将存储单元分散在内存的任意地址上。   链表结构中每个数据元素记录都存放到链表的一个节点node中而每个节点之间由指针将其连接在一起形成了”链“的结构、 链表每个节点中都必须有一个专门用来存放指针地址的域用这个指针域来存放后继结点的地址这样就达成了连接后继结点的目的。 一条链表通常有1个”表头“是一个指针变量用来存放第一个节点地址。此外一条链表的最后一个节点的指针域要置空NULL表示该节点为链表的尾节点因为它之没有后继结点了。   链表特征 1每个节点包括两部分数据域和指针域。其中数据域用来存放数据元素本身的信息指针域用来存放后继结点的地址。 2链表逻辑上是连续的而物理上不一定连续存储节点、 3只要获得链表的头节点就可以通过指针遍历整条链表。   实例编写一个程序要求从终端输入一组整数大于10个数以0作为结束标志将这一组整数存放在一个链表中结束标志0不包括在内打印出该链表中的值。然后删除该链表中的第五个元素打印出删除后的结果。最后在内存中释放掉该链表。   #includestdio.h #includestdlib.h typedef int ElemType;typedef struct node{ElemType data;struct node *next; }LNode,*LinkList;LinkList GreatLinkList(int n) { //创建一个长度为n的链表 LinkList p,r,listNULL;ElemType e;int i;for(i1;in;i) {scanf(%d,e); //输入结点的内容 p(LinkList)malloc(sizeof(LNode));//为新建的结点开辟内存空间 p-datae; //元素赋值 p-nextNULL;if(!list)listp; //赋值链表头指针 elser-nextp; //将结点连入链表 rp;}return list; //返回链表头指针 }void insertList(LinkList *list,LinkList q,ElemType e) {//向链表中插入结点 e LinkList p;p(LinkList)malloc(sizeof(LNode));//为新建的结点开辟新的内存空间 生成一个新结点由p指向它 p-datae; //向该结点的数据域赋值e if(!*list) {*listp; //list内容为NULL时表示该链表为空赋值链表头指针 p-nextNULL;} //当链表为空时q没有意义只能在头结点后面插入第一个元素 else {p-nextq-next;//当链表不为空时认为q指向的结点一定存在将q指向的结点的next域的值赋给p指向结点的next域q-nextp; } }void delLink(LinkList *list,LinkList q) { //删除链表的某结点 LinkList r;if(q*list) { //如果删除第一个结点 *listq-next;free(q);}else { //删除其他结点 for(r*list;r-next!q;rr-next)if(r-next!NULL) {r-nextq-next;free(q);}} }void destroyLinkList(LinkList *list) { //销毁一个链表 LinkList p,q;p*list;while(p) { //循环释放掉每一个链表结点 qp-next;free(p);pq;}*listNULL;//将*list的内容置为NULL这样主函数中的链表list就为空防止了list变为野指针而且链表在内存中也完全被释放掉了。 }int main() {int e,i;LinkList l,q;qlGreatLinkList(l);//创建一个链表结点q和l都指向该结点 scanf(%d,e);while(e) { //循环输入数据同时插入新生成的结点 insertList(l,q,e);qq-next;scanf(%d,e);}ql;printf(the content of the linklist\n);while(q) { //输出链表中的内容 printf(%d,q-data);qq-next;}ql;printf(\nDelete the fifth element);for(i0;i4;i) { //将指针q指向链表的第五个元素 if(qNULL) { //确保此时链表的长度大于等于5否则将是非法操作 printf(the length of the linklist is smaller than 5!);}qq-next;}delLink(l,q); //找到链表中第五个元素用q指向它再删除q所指的结点 ql;while(q) { //打印出删除后的结果 printf(%d,q-data);qq-next;}destroyLinkList(l); //销毁该链表 return 0; }创建链表注意 1用malloc()函数在内存的动态存储区堆内存中开辟一块大小为sizeof(LNode)的空间并将其地址赋给LinkList类型变量pLinkList为指向LNode变量的类型LNode为前面定义的链表结点类型。然后将数据e存入该结点的数据域data指针域存放NULL。 2若指针变量list为空说明本次生存的结点是第一个结点…… 3若指针变量list不为空说明本次生存的结点不是第一个结点将p赋给r-next。此处的r是一个LinkList类型变量永远指向原先链表的最后一个结点也就是要插入结点的前一个结点。 4再将p赋值给r目的是使r再次指向最后的结点以便生成链表的下一个结点即保证r永远指向原先链表的最后一个结点。 5重复1~4n次生成n个结点的链表 6最后生成的链表的头指针list返回主调函数通过list就可以访问到该链表的每一个结点。   删除链表注意 从非空链表删除q所指的结点考虑3种情况 1q所指向的是链表的第一个结点 2q所指向的结点的前驱结点的指针已知 3q所指向的结点的前驱结点的指针未知   销毁链表注意 链表使用完建议销毁因为链表本身会占用内存空间。若一个系统中使用很多链表而使用完又不及时销毁那么这些垃圾空间积累过多最终导致内存的泄露甚至程序的崩溃。   ———————————————————————— ———————————————————————— 程序运行时候删除第5个元素没有显示出预期结果。运行环境在DEV。转载于:https://www.cnblogs.com/dd2hm/p/6838694.html
http://www.pierceye.com/news/310482/

相关文章:

  • 做能支付的网站贵吗网络安全工程师考证
  • 下载类网站开发条件环球资源网成立时间
  • 客户如何找到做网站宣传的律师免费虚拟主机空间
  • 点击网站出现微信二维码的链接怎么做网架制造厂
  • 服装网站建设环境分析一家专门做房产特卖的网站
  • 网站推广方式方法品牌建设的阶段和步骤是什么
  • 游戏开发平台seo的定义
  • 北京住房和城乡建设部网站官网可信赖的购物网站建设
  • 网站百度一直没有收录热狗网站关键词优化
  • 视频网站开发价格本地app开发公司电话
  • 网站设计风格介绍北京市建设工程信息网如何登录
  • 怎么创建一个属于自己的网站怎么制作做网站
  • 大学加强网站建设与管理的通知莱芜金点子租房信息港
  • 网站的营销与推广杭州五旋科技网站建设怎么样
  • 莱芜四中网站如何优化网站目录结构
  • 深圳公司网站设计哪家好北京装修公司十大排名
  • 如何制作一个好网站做国际网站找阿里
  • 南京制作网站wordpress网站源码上传
  • 做装修效果图的网站有哪些软件泉州营销型网站设计
  • 让路由器做网站服务器一级建造师价格最新行情
  • 白沟做网站wordpress批量编辑
  • 网站充值支付宝收款怎么做天元建设集团有限公司第七建筑工程公司
  • 定制家具网站源代码海口本地网站
  • 公司网站建设平台公司做网站开发流程
  • wordpress网站怎么打开很慢劳务派遣和外包一样吗
  • cms怎么搭建网站做装修的网站怎么做好
  • 个人网站建站的流程做网站一定要会ps么
  • 网站的数据运营怎么做国外做贸易网站
  • 网站全站开发需要学什么怎么样免费给网站做优化
  • 做的好的学校网站简单公司网页设计