永发信息网

急呀 C语言

答案:3  悬赏:30  手机版
解决时间 2021-04-28 13:53
有一线性表示存储在一个带头结点的循环单链表L中,写出计算线性表元素个数的算法 可不可帮我用C语言编下这道题,要完全的程序,就是可以直接可以运行的... 帮帮忙了,真的很急需
最佳答案
已测试运行通过:

#include <stdio.h>
#include <stdlib.h>

typedef struct _list {
int val;
struct _list* next;
} *node, list;

node Insert( node head, node pos, int val )
{
node tmp;
tmp = ( node )malloc( sizeof( list ) );
tmp->val = val;
tmp->next = pos ? pos->next : head->next;
if ( pos ) {
pos->next = tmp;
} else {
head->next = tmp;
}
return tmp;
}

void Create( node head, int* beg, int* end )
{
node t;
head->next = t = NULL;
head->val = end - beg;
while ( beg != end ) {
t = Insert( head, t, *beg++ );
}
t->next = head;
}

int Count( node head )
{
int n = 0;
node h = head;
while( head->next != h ) {
head = head->next;
++n;
}
return n;
}

void Print( char* msg, node head )
{
node h = head;
printf( msg );
head = head->next;
while ( head != h ) {
printf( "%d ", head->val );
head = head->next;
}
putchar( '\n' );
}


int main()
{
int a[] = { 1,3,5,7,9 };
int n;
list head;
Create( &head, a, a + 5 );
n = Count( &head );
Print( "list:", &head );
printf( "COUNT:%d\n", n );
getchar();
return 0;
}
全部回答

p = head ;

int n = 0 ; //计数器

while(p->next)

{

p=p->next;

n ++ ; //往后走一步,计数器自加一,

}

cout<<"结点个数为: "<<n<<endl;

遍历。。。。设头节点为head

p = head ;

int n = 0 ; //计数器

while(p->next)

{

p=p->next;

n ++ ; //往后走一步,计数器自加一,

}

cout<<"结点个数为: "<<n<<endl;

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
延边合作银行招聘笔试都是什么内容?
刺客信条2扔钱扔不了?
我最近不香饭,两个月瘦了十斤!昨天晚上吃了
价值3千元左右的砂轮是叫什么名字的?
广州去江门要多久,江门坐高铁去广州要多久
富豪足道NO.1地址有知道的么?有点事想过去
男生烫什么头发好看
SLEP在哪报名?
我的聊天页面因网络繁忙,现在已经好了。
犯错误鼓励改正的句子,说错话的检讨书应该怎
PSP版(不是PC版)秋之回忆1-5的下载
急!急!急!十万火急!大家谁知道中国印人民
QQ幻想世界游戏激活码
我是1990年阴历2月14日晚上差五分钟8点出生的
中国建设银行成都开发区支行在哪里啊,我有事
推荐资讯
青岛地区哪能买真的三星i600
为什么从来没有看见刘德华拍的的电视剧呢??
中国桃花诗村图书室这个地址在什么地方,我要
问问收藏的专家有几个是高手
山东经济燕山学院的工商管理怎么样
绿色征途法师怎么加属性点
亲吻姐姐一共几集?
有哪位亲。会做那种中间四个字。是有圈圈的。
200+200等于几
近来还好吗英语怎么说,“近年来“英语怎么说
乌鲁木齐医科大护理学院 大专报名招生时间。
诗歌发展历史的详细资料.
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?