77问答网
所有问题
当前搜索:
设计一个算法删除单链表
数据结构与
算法
大学没学明白的来
答:
通过画一张图来捋一捋: 数据三要素 数据结构三要素分为:逻辑结构、存储结构、数据的运算。逻辑结构分为线性结构和非线性结构;存储结构分为顺序存储、链式存储、索引存储、散列存储:数据运算包括定义和实现。 数据结构学习步骤
单链表
(带头结点、不带头结点)设计与实现(增删改查),双
链表设计
与实现 栈设计与实现(...
...节点的
单链表
L,用于存放整数序列,
设计一个算法
判断该序列是否是对...
答:
弄
一个
整型的辅助栈 第一轮从
链表
的第一个结点开始,将所有元素全部放入栈中 第二轮再从链表的第一个结点开始,依次将元素和当前栈顶元素相比较,如果相等,则链表当前结点后移,
删除
栈顶元素 直到栈为空(其实也是链表表尾了),此时为对称 如果中间不等,结束循环,链表不对称 ...
十万火急,尽快。数据结构编程 ,
单链表
的第
一个
结点从表头移到表尾_百度...
答:
cout<<"输入
链表
元素(按升序顺序输入):"while(cin>>x&&x!=0){ if(L==NULL){ L=new Linklist;L->data=x;rear=L;L->next=NULL;} else { p=new Linklist;p->data=x;rear->next=p;p->next=NULL;rear=p;} } rear->next=NULL;} void del(int x)//
删除
data域值为x的结点 {...
有一个
带头结点的
单链表
L,
设计一个算法
使其元素递增有序排列
答:
=NULL) { /*把p
链表
的第
一个
元素插入到L,并且将它从p中移除*/ r=p->next; //r指向p的第二个元素 /* 找到合适的插入点 */ q=L; while(q->next!=NULL && q->next->data < p->data) q=q->next; /* 在q后面插入p */ p->next=q->next; ...
设计一个
计算
单链表
(链表带头结点)中结点个数的
算法
,并依此输出链表中的...
答:
include<stdio.h> include<stdlib.h> typedef struct node { int data;struct node *next;}node;void count(node* l)//计算节点个数,输出所有值 { int n = 0;node* p = l->next;while(p){ printf("%d ",p->data);p = p->next;n++;} printf("\n%d\n",n);} int main(){...
...编写
一个算法
,将两个循环
单链表
合并为一个循环单链表
答:
编写好的
算法
实现将这两
个
链表合并为新的带有头结点的链表 lc ,使得 lc 的元素仍然是非递增有序排列的序列,如果遇到 la 与 lb 中元素相同,则只取 la 中的元素,去掉 lb 中的元素。已知 la 的元素个数 为 m , lb 的元素个数为 n。循环
单链表
是单链表的另一种形式,其结构特点链表中最后...
设计一个算法
,通过一趟遍历在
单链表
中确定值最大的结点。要完整的程序...
答:
include"stdlib.h"include"stdio.h"include"time.h"struct node { int data;struct node *link;};void main(){ int i,max,t;struct node *head,*u,*v,*p,**h;randomize();for(i=1;i<10;i++){ u=(struct node *)malloc(sizeof(struct node));u->link=NULL;t=rand();u->data...
单链表
中在结点前插入
一个
结点的
算法
答:
假设插入的值为int类型,为a;void Insert(LinkList P){ LinkList s;int a,tempt;s=(LinkList)malloc(sizeof(LNode));s->data=a;s->next=x->next;x->next=s;tempt=s->data;s->data=x->data;x->data=tempt;} 这个
算法
的思想是在x的节点后插入
一个
节点,然后将x节点的值和插入节点...
有两个长度为n的
单链表
,结点类型相同,
一个
链表是非循环,一个是循环...
答:
这个时间复杂度得看你的程序是怎么写的了。对于非循环的
链表
来说,如果指针指向的是头结点,O(
1
)是对的。但如果是循环链表的话,指针的指向就将决定你的
算法
的时间复杂度,应该假设指针指向所有的结点,求出平均时间复杂度来作为结果。
设计一个算法
,利用
单链表
原来的结点空间将一个单链表就地逆转
答:
1.建立两个指针struct* p,q,p=head,q=p->next,即最开始p指向
链表
的第1项,q指向第2项 2.if q->next !=NULL, p=p->next,q=q->next 3.endif q->next ==NULL,即q指向最后一项,p指向倒数第二项 新建
一个
指针,保存原表尾的地址 struct*t=q 4.q->next=p,q=p //倒数第...
棣栭〉
<涓婁竴椤
5
6
7
8
10
11
12
9
13
14
涓嬩竴椤
灏鹃〉
其他人还搜