试编写在带头结点的动态单链表上实现线性表操作LENGTH(L)的算法.并将长度写入头结点的数据域

试编写在带头结点的动态单链表上实现线性表操作LENGTH(L)的算法.并将长度写入头结点的数据域(C语言)
#include<alloc.h>
#include<stdio.h>
typedef int datatype;
typedef struct node
{
datatype data;
struct node *next;
}linklist;

linklist *head,*p;
int n;
void OUT(linklist *head)
{
linklist *p;
p=head->next;
while(p)
{
printf("%6d",p->data);
p=p->next;
}
printf("\n");
}

int length_l(linklist *head)
{
linklist *p=head;
int i=0;
while(p!=NULL)
{ i++;
p=p->next;
}
head->data = i;
return i;
}

void main()
{
linklist *head,*p;
int i;
datatype x;
printf("please input n:");
scanf("%d",&n);
printf("please input %d datas:\n",n);
head=CREATLIST_F();
OUT(head);
printf("\nplease input the insert data and order(x,i):");
scanf("%d,%d",&x,&i);
p=GET(head,i-1);
if(p)
OUT(head);

}

整个程序怎么写,不知道主函数里怎么弄。

第1个回答  2009-03-08
在return之前把i写到头节点的数据域不就行了吗?
head->data = i;本回答被提问者采纳

数据结构作业
2.7 试编写在带头结点的动态单链表和静态单链表上实现线性表操作Length(L)的算法,并将长度写入头结点的数据域中。★(1) typedef int datatype; typedef struct node { datatype data; struct node *next; } linklist; void Length1(linklist *L) { linklist *p=L-next; int i=0; while(p) { i++;...

数据结构算法复杂度分析中答案中的lb是什么意思啊?
以二为底的对数百度百科还是有的,直接搜 对数 lb n 计算机 这些关键才

...带头结点的单链表结构上实现线性表操作Length(L)。下面各个步骤的解...
intListLength_L(LinkList &L){int i=0;\/\/i存储链表长度,初始为0LinkList p=L;\/\/p为链表的指针,初始为头指针,指向头结点if(p) p=p-next;\/\/如果p指向的头结点不为空,p指向带数据的第一个结点while(p){\/\/如果p非空,i长度加1,且指向下一个结点p=p->next;i++;} return i;\/\/...

在CRAY-1上用链接技术进行向量运算D=A*(B+C)假设向量长度N≤64...
第一条指令的时间kt,加上其余n-1条指令

试写一算法在带头结点的单链表结构上实现线性表操作LENGTH(L)
int length_l(linklist head){ linklist p=head;int i=0;while(p!=NULL){ i++;p=p->next;} return i;} 参考书上的正确答案,我也在学数据结构,加油啊!

试写一算法在带头结点的单链表结构上实现线性表操作LENGTH(L)
int length_l(linklist *head){ linklist *p=head;int i=0;while(p!=NULL){ i++;p=p->next;} return i;} 参考书上的正确答案,我也在学数据结构,加油啊!

试写一算法在带头结点的单链表结构上实现线性表操作Locate(L,x)按值...
Node *Locate(Node L,int x){ Node *p;p = L.next;while(p != NULL){ if (p->data == x){ return p; \/\/找到返回结点的地址 } p = p->next;} return NULL; \/\/未找到 }

用C语言头插法或尾插法建立带头结点的单链表,实现单链表上的插入,删除...
\/* 初始条件:顺序线性表L已存在,1≤i≤ListLength(L) *\/ \/* 操作结果:用e返回L中第i个数据元素的值 *\/ Status GetElem(LinkList L,int i,ElemType *e){ int j;LinkList p; \/* 声明一结点p *\/ p = L->next; \/* 让p指向链表L的第一个结点 *\/ j = 1; \/* j为计数...

有一个线性表存储在一个带头结点的循环单链表L中,写出计算线性表元素...
int data;struct link *next;}link,*linklist;int main(){ linklist l,p,q,s;int a,j=0;l=(linklist )malloc(sizeof(linklist));l->next=l;p=l;while(1){ printf("请输入链表数据:");scanf("%d",&a);if(a==0) break;s=(linklist )malloc(sizeof(linklist));s->data=a;...

编写程序,建立一个带有节点的单向链表,输入字符串,并按从小到大顺序组织...
链表的具体存储表示为:① 用一组任意的存储单元来存放线性表的结点(这组存储单元既可以是连续的,也可以是不连续的)② 链表中结点的逻辑次序和物理次序不一定相同。为了能正确表示结点间的逻辑关系,在存储每个结点值的同时,还必须存储指示其后继结点的地址(或位置)信息(称为指针(pointer)或链(...

相似回答