试写一算法在带头结点的单链表结构上实现线性表操作LNode* LOCATE(LinkList L, int X)。

如题所述

试写一算法在带头结点的单链表结构上实现线性表操作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;\/\/...

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

有一个带头结点的单链表L,设计一个算法使其元素递增有序排列
\/* 插入排序法 *\/void sort(Linklist *&L){ LinkList *p=L->next, *q, *r; if(p!=NULL) { \/* 把链表分成两条,一条已经排序好了(L),一条待排序(p)*\/ r=p->next; p->next=NULL; p=r; \/* 对于所有待排序的元素 *\/ while(p!=NULL) { ...

数据结构 设计一个算法判定一个带头结点的单链表的元素值是否递增的
}LNode,*Linklist 算法这样写:status Judge (Linkedlist l)\/\/表头为l {int *p,p=l->next;\/\/定义指针变量p,使得p指向首元 if (p-next==NULL||p==NULL) return INFEASIBLE;\/\/如果链表为空,或者仅有一个数据节点,则参数不合法 else { while (p->next!=NULL&&p->data<p->next-data)...

有一线性表存储在一个带头结点的循环单链表L中,写出计算线性表元素个数...
linklist deletenode(int n,int k,linklist R){ int i,j;listnode *p,*q;p=R;for(i=1;i<n;i++){ for(j=1;j<k;j++)p=p->next;q=p->next;p->next=q->next;free(q);} R=p;return R;} void outring(int n,linklist R){ listnode *p;p=R;printf("%d",p->data);...

设计一个算法,在带头结点的单链表head中删除一个data域值最小的结点...
s = (LinkList)malloc(sizeof(LNode));s ->data = e;s->next = p->next;p->next = s;return 1;} void ListDeleteMax(LinkList L,int *e) \/\/删除最大元素 { LinkList p = L->next;LinkList s = L; \/\/s指向最大结点前面的结点 LinkList q;int m = p->data; \/...

数据结构作业
★2.5 已知带头结点的动态单链表L中的结点是按整数值递增排列的,试写一算法将值为x的结点插入表L中,使L仍然有序。 typedef int datatype; typedef struct node { datatype data; struct node *next; } linklist; \/\/linklist结构体类型描述 void InsertListOrder(linklist *L, datetype x) { linklist *p...

有一个线性表存储在一个带头结点的循环单链表L中,写出计算线性表元素...
typedef int elementype;typedef struct link{ 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=(link...

数据结构(C语言版),带头结点的单链表,初始化。不懂的在算法里批注了...
viod CreateList_L(Linklist &L,int n){ \/\/逆位序输入n个元素的值 这是写程序的人的注释 逆序体现在插入数据时,不是在尾部追加,而是从头部加入 每次输入的数据结点,都会成为当前的数据头 正向遍历数据(表头到表尾)时,所显示的数据与录入的顺序是相反的。L=(Linklist)malloc(sizeof(Lnode...

线性链表的单链表操作的实现
(1) 线性表的操作GetElem(L, i, &e)在链表中的实现:基本操作为: 使指针p始终指向线性表中第j个数据元素Status GetElem_L(LinkList L, int i, ElemType &e)\/\/ L为带头结点的单链表的头指针。当线性表中存在第i个元素时,则将第i个数据元素的值赋给e并返回OK,否则返 回ERROR{p = L-...

相似回答