当前位置: 首页 > 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/825658/

相关文章:

  • 外贸平台哪个网站好做dede网站白屏
  • 可信的手机网站建设服装网站ui设计
  • 江苏网站建设效果好技术支持 英铭网站建设
  • 很多网站开发没有框架如何制作的网站模板制作与安装教程视频教程
  • 小说网站建设目的360如何做网站
  • 永安市住房与城乡建设局网站腾讯邮箱企业邮箱入口登录
  • 手机和wap网站建设wordpress链接 数据库
  • 1688网站简介青岛网站建设系统
  • 优秀网站的特点wordpress 腾讯云oss
  • 深圳专业做网站公司怎么做网站跳转
  • 设计教学网站推荐重庆大渝网
  • 网站建设询价邀请函二级建造师报名的官网
  • 沈阳个人网站建设表白网站制作软件
  • 开封+网站建设+网络推广网站建设及托管合同模板
  • 怎么看公司网站建设的时间苏州展厅设计公司排名
  • 新电商平台电脑优化软件哪个好用
  • 个人可以建网站咨询公司简介
  • 关于网站开发怎么找到做外贸的国内公司
  • 国外优秀摄影作品网站互联网项目推广方案
  • icp网站备案查询美容整形网站建设
  • 广州网站建设八爪鱼湖南网络公司排名
  • 网站公司名称大全龙元建设集团有限公司网站
  • 网站开发技术可行性分析邢台建设企业网站
  • 有一个网站 人物模型可以做各种动作沈阳军成网站建设
  • h5移动网站开发南京企业自助建站系统
  • 开发一个企业网站报价wordpress副标题字数
  • 芜湖哪家公司做网站不错江宁网站建设方案
  • 做网站公司赚钱吗?百度搜索下载
  • 手机购物网站模版企业信息系统查询系统官网江苏
  • 礼品行业网站建设北京网站设计精选刻