这里为什么这样体现带头结点与不java带头结点的单链表不同?这样表示是什么意思啊!

欢迎加入我们,一同切磋技术。 &
用户名: &&&
密 码: &
共有 670 人关注过本帖
标题:[求助]怎么把代码改成不带头结点
等 级:新手上路
帖 子:43
&&问题点数:0&&回复次数:6&&&
[求助]怎么把代码改成不带头结点
void onlyone(int n){ slink *head,*p,*q; int i,m,k; p=head=(slink *)malloc(sizeof(slink)); for(i=1;i&=n;i++){ q=(slink *)malloc(sizeof(slink)); q-&data=i; p-&next=q; p=q;} p-&next= p=m=0;while(m&n-1){ k=0; while(k&3){ k++;q=p;p=p-&if(p==head){ q=p;p=p-&}}q-&next=p-&free(p);p=q;m++;}list(head);}各位高手帮帮忙啊·小弟最近学习数据结构啊!不大会啊!很多都不懂啊!希望各位帮帮小弟啊!!在下感激不敬!!
搜索更多相关主题的帖子:
等 级:贵宾
威 望:13
帖 子:1278
为什么要想不带头,那q,p是变化。如果你不要头结点,怎样读第一个结点。
谁有强殖装甲第二部,可以Q我
等 级:贵宾
威 望:13
帖 子:1278
还有这个程序有什么用,而且格式很乱。
谁有强殖装甲第二部,可以Q我
等 级:新手上路
帖 子:43
这个题目的原题是:由N个已按1,2,3。。。。。,N编号的人围成一圈,从编号为1的人开始按1,2,3顺序循环报数,凡报到3者出圈,最后只留一人,问起编码是多少啊?题目是以前学C的时候的题啊!可以用链表实现啊!书本上说还可以用不带头结点实现啊!这时我就不懂拉!所以来问问啊!!高手请帮帮我啊!!!我实在想了很久也没有办法啊!
还是不知道怎么会有这样的想法,但是我永远之爱你一个!!
等 级:新手上路
帖 子:38
链表的尾结点指向头结点的next域,构成循环链表吧...
等 级:新手上路
帖 子:43
是啊!好象是吧!!那要怎么写啊???
还是不知道怎么会有这样的想法,但是我永远之爱你一个!!
等 级:新手上路
帖 子:38
这个行不...Status Joseph_2(int n,int s,int m) //建立n个结点的无头结点的单链表,从s开始报数,报到第m个人则出列;{
LinkList L,p,q;
int k,count = 0;
if(n & 1 || s & 1 || m & 1)
return ERROR;
if(!(q = (LinkList)malloc(sizeof(LNode))))
return ERROR;
for(k = 1;k &=k++)
q-&next = NULL;
if(!(q = (LinkListmalloc(sizeof(LNode))))
return ERROR;
p-&next = L;
//构成循环链表;
for(k = 1;k &k++)
//找到s点;
while(count++ & n)
for(k = 1;k & m-1;k++)
//出列人的前一位
p-&next = q-&
printf("%d 、",q-&data);
p = q = L = NULL;
return OK;}
版权所有,并保留所有权利。
Powered by , Processed in 0.569747 second(s), 7 queries.
Copyright&, BCCN.NET, All Rights Reserved双向循环链表(带头结点) - CSDN博客
双向循环链表(带头结点)
//定义结构体
typedef struct data {
&&&&& int&
&&&&& struct data *&& //前驱
&&&&& struct data * //后继
//创建双向循环链表
DATA *creat () {
&&& DATA& *head, *node1, *node2;
//先创建一个空的双向循环链表
&&& head = node1 = malloc(N);
&& &head-&next =
&& &head-&pro =
&& &printf (&\n PLease input the data:&& \n&);
&& &&& &node2 = malloc(N);
&& &&& &scanf (&%d“,node -& data);
&& &&& &node2-&next =
&& &&& &head-&pro = node2;
&& &&& &node2-&pro = node1;
&& &&& &node1-&next = node2;
&& &&& &node1 = node2;
&& &&& &printf (&\nDo you want to continue?(y/n) \n&);
&& &&& &getchar();
&& &&& &scanf (&%c&, &choice);
&& &}while (choice == 'y' || choice == 'Y');
int insert (DATA *head) {
&&& DATA *node, *node_
&& &node = head-&
&& &printf (&\n insert: \n&);
&& &&& &&& &node_insert = malloc(N);
&& &&& &&& &printf (&\nPlease input the data you want to insert:\n&);
&& &&& &&& &scanf (&%d&, &node_insert -& data);
&& &&& &&& &printf (&%d&, node_insert -& data);
&& &&& &&& &while (node != head& && node_insert -& data& & node -& data) {
&& &&& &&& &&& &node = node-&
&& &&& &&& &}
&& &&& &&& &node_insert-&pro = node-&
&& &&& &&& &node-&pro-&next = node_
&& &&& &&& &node_insert-&next =
&& &&& &&& &node-&pro = node_
&& &&& &&& &printf (&\nDo you& want to continue?(y/n)&);
&& &&& &&& &getchar();
&& &&& &&& &scanf (&%c&, &choice);
&& &&& &}while (choice == 'y' || choice == 'Y');
&& &return 0;
//删除& 类比插入自行推理~
小编提示:不要忘记在创建在开始创建一个空的双向循环链表,小编之前就忘记了,结果出现大大的bug,后来,请教了小编的老师,才知道的。之前在网上搜索的感觉好像看不懂,而且还有bug,给老师看得时候,老师说“你连单向的都不清楚,先用单向吧”,所以,网上的程序,你们懂得,小编就不多说了,但是,小编的一定时=是正确的哦。还有,就是在交换的时候,注意指针的指向,最好画画图,搞清楚,不要绕晕啦,之前小编就晕呢。
本文已收录于以下专栏:
相关文章推荐
单循环链表
循环链表的特点是最后一个元素的指针域指向头结点。
因此对于循环链表的初始化(设表的头结点是L, 不再是L-&next=NULL,而是L-&next=L。循环链表为空时,头结点的下一...
一、 链式存储
      以结点的形式存储数据。除了存放一个结点的信息外,还需附设指针。
           
以下为“带头节点的双向循环链表”的简单实现:
1. 用c语言实现的版本
#include /* EOF(=^Z或F6),NULL */
#include /* floor(),ceil(),abs(...
/*****************带头节点双向循环链表***************/
#ifndef Double_
#define Double_
#include 
#include &D...
// -------------------------------------------------------
// 建立双向链表
// 程序分析:双向链表的节点有...
带头结点和不带头结点的尾插法建立双链表
一.带头结点的
先介绍存储数据类型为字符型的
//编程建立双链表(data为字符型数据)13-2-1ex3.cpp
//带头结点的双链表
以下是“带头节点的、双向循环链表”的简单实现。
1. 用c语言实现的版本
#include /* EOF(=^Z或F6),NULL */
#include /* floor(),ceil(),ab...
链表是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每个节点里存到下一个节点的指针。由于不须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比顺序表O(logn)快...
1.循环单链表
1.循环单链表特点:
链表中最后一个结点的指针域不再是结束标志,而是指向整个链表的第一个结点,从而使链表形成一个环。和单链表相同,循环单链表也有带头结点和不带头结点两种。带头结点的...
我在之前一篇博客中《C语言实现双向非循环链表的逆序打印》讲到了如何逆序输出一个双向非循环链表,让我们对这种链表类型有了理性的认识。今天我们要来实现的是对双向非循环链表进行节点的插入。大家可以和《C语言...
他的最新文章
讲师:王禹华
讲师:宋宝华
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)怎样建立一个不带头结点的单链表呢?谢谢!!【数据结构吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:60,118贴子:
怎样建立一个不带头结点的单链表呢?谢谢!!收藏
快试试吧,可以对自己使用挽尊卡咯~◆◆
如果不建立一个头结点,第一个生成的结点是开始结点,将开始结点插入到空表中,是在当前链表的第一个位置上插入,该位置上的插入操作和链表中其他位置上的插入操作处理是不一样的,算法中要对第一个位置上的插入操作做特殊处理。空表和非空表是两种不同情况,也要分别进行处理。若读入的第一个字符就是结束标志符,则链表是空表,尾指针r亦为空,结点*r不存在;若不是结束标志符,则链表非空,最后一个尾结点*r是终端结点,应将其指针域置空。
&像这种不带头结点的单链表要怎么建立呢?(分空表和非空表)
阿里云对象存储OSS,为图片音视频数据提供智能存储处理平台,让您专注于核心业务.给您海量,安全和高可靠的云存储服务.
快试试吧,可以对自己使用挽尊卡咯~◆◆
和带头节点的差不多的
node&*h;
h=new&node[1];
h-&data=x;
h-&next=
在带头节点的这个h-&data不赋值,或者赋特殊值,
不带头节点这个h-&data直接赋第一个节点的值
第二个节点时
p=h;
while(p-&next!=null)
{
p=p-&
}
q=new&node[1];&//分配新节点
q-&data=x;&//&x表数值
q-&next=
p-&next=q;&//连接新节点到队尾
以后的节点类似,这样创建链表,访问链表时使用h指针
登录百度帐号推荐应用

我要回帖

更多关于 不带头结点的单链表 的文章

 

随机推荐