当前位置:首页 » 存储配置 » 串顺序存储

串顺序存储

发布时间: 2022-07-20 16:59:21

A. 串的顺序存储结构和链式存储结构该怎样表示呀!

顺序存储结构就是 数组比如int a[5],通过下标引用;
链式存储就是 链表

B. c++串的顺序存储结构,尽量简单【四个功能,增删改查】

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

typedefstructNode
{
chardata;
structNode*next;
}node;

voidInsert(node*);//插入
voidFind(node*);//查找
intCount(node*);//链表长度
voidUpdate(node*);//修改
voidDelete(node*);//删除
voidShow(node*);//输出

intmain()
{
inta;
nodehead;
head.next=NULL;

printf("***********链表的操作************ ");

while(1)
{
a=0;
printf("***********请选择您的操作*********** ");
printf("1链表的插入 2链表的查找 3链表的修改 4链表的删除 5链表的输出 6退出系统 ");
scanf("%d",&a);

switch(a)
{
case1:
Insert(&head);
break;
case2:
Find(&head);
break;
case3:
Update(&head);
break;
case4:
Delete(&head);
break;
case5:
Show(&head);
break;
case6:
exit(-1);
break;
default:
printf("输入错误!");
break;
}

}
return0;
}

intCount(node*head)
{
node*pH=head;
intcount=0;
while(pH->next!=NULL)
{
pH=pH->next;
count++;
}

returncount;
}

voidInsert(node*head)
{
intwhich=0;
inti=0;
intj=1;
charch;
node*pH=head;

printf(" 1.首插入2.未插入3.插入到位置i ");
printf("请选择:");
scanf("%d",&which);
ch=getchar();
if(which==1)
{
printf("请输入值:");
scanf("%c",&ch);
node*q=(node*)malloc(sizeof(Node));
q->data=ch;
q->next=pH->next;
pH->next=q;
}
elseif(2==which)
{
while(pH->next!=NULL)
{
pH=pH->next;
}
printf("请输入值:");
scanf("%c",&ch);
node*q=(node*)malloc(sizeof(Node));
q->data=ch;
q->next=pH->next;
pH->next=q;
}
elseif(3==which)
{
printf("请输入i的值:");
scanf("%d",&i);
ch=getchar();
if((i>0)&&(i<=Count(head)+1))
{
printf("i=%d",i);
while(j<i)
{
pH=pH->next;
j++;
}
printf("请输入值:");
scanf("%c",&ch);
node*q=(node*)malloc(sizeof(Node));
q->data=ch;
q->next=pH->next;
pH->next=q;
}
else
{
printf("i输入错误! ");
}
}
else
{
printf("选择错误! ");
}

return;
}

voidShow(node*pH)
{
printf("链表输出: ");
if(pH->next==NULL)
{
printf("链表为空! ");
return;
}
else
{
while(pH->next!=NULL)
{
pH=pH->next;
printf("%3c",pH->data);
}
printf(" 输出结束! ");
}
}

voidFind(node*head)
{
intwhich=0;
intj=0;
inti=0;
charch;
boolis_have=false;
node*q=head->next;

if(Count(head)==0)
{
printf("链表为空!无法查找. ");
return;
}

printf("1.查找内容的位置2.查找位置的内容 ");
scanf("%d",&which);
ch=getchar();

if(1==which)
{
printf("请输入要查找的内容:");
scanf("%c",&ch);

while(q!=NULL)
{
j++;
if(q->data==ch)
{
printf("%c是第%d个。 ",ch,j);
is_have=true;
}
q=q->next;
}

if(is_have==false)
{
printf("所查找的内容在链表中不存在!");
}
}
elseif(2==which)
{
j=0;
printf("请输入要查找的位置:");
scanf("%d",&i);

if(i>Count(head)||i<1)
{
printf("位置错误!无法查找。 ");
return;
}

while(q!=NULL&&j<i-1)
{
q=q->next;
j++;
}
printf("内容为:%c",q->data);
}
else
{
printf("选择错误! ");
}

return;
}

voidUpdate(node*head)
{
node*q=head->next;
inti=0;
intj=0;
charch;

if(Count(head)==0)
{
printf("链表为空!无法查找. ");
return;
}

printf("请输入要修改的位置:");
scanf("%d",&i);
ch=getchar();
if(i>Count(head)||i<1)
{
printf("位置错误!无法修改。 ");
return;
}

printf("请输入修该的值:");
scanf("%c",&ch);
while(q!=NULL&&j<i-1)
{
q=q->next;
j++;
}
q->data=ch;
printf("修改成功! ");

return;
}

voidDelete(node*head)
{
node*q=head->next;
node*p=head;
inti=0;
intj=0;
charch;

if(Count(head)==0)
{
printf("链表为空!无法删除. ");
return;
}

printf("1.全部删除2.删除单个 ");
scanf("%d",&i);
ch=getchar();

if(1==i)
{
while(q!=NULL)
{
p=p->next;
q=q->next;
free(p);
}
head->next=NULL;
printf("释放成功! ");
}
elseif(2==i)
{
printf("请输入要删除的位置:");
scanf("%d",&i);
ch=getchar();
if(i>Count(head)||i<1)
{
printf("位置错误!无法删除。 ");
return;
}

while(q!=NULL&&j<i-1)
{
p=p->next;
q=q->next;
j++;
}
p->next=q->next;
free(q);

printf("删除成功! ");
}
else
{
printf("选择错误! ");
}

}

C. 顺序存储方式串的基本操作是什么

1.串联结concat串联结concat函数是用T返回由S1和S2联结而成的新串。由于串长固定,因此超过串长的串值必须舍去,称为“截断”。假设S1、S2和T都是SString型的串变量,且串T是由串S1联结得到的,即串T的值的前一段和串S1的值相等,串T的值的后一段和串S2的值相等,则只要进行相应的“串值复制”操作即可,只是需要约定,对超长部分实施“截断”操作。基于串S1和S2长度的不同情况,串T值的产生可能有2种情况:①S1[0]+S2[0]≤MAXSTRLEN时,得到串T的正确结果;②S1[0]<MAXSTRLEN,而S1[0]+S2[0]>MAXSTRLEN时,则将串S2的一部分截断,得到的串T只包含S2的一个子串;③S1[0]=MAXSTRLEN时,则得到的串T并非联结结果,而和串S1相等。在这里仅考虑能正确联结的情况,即S1[0]+S2[0]<MAXSTRLEN,

D. 字符串在小字节序计算机中是按什么顺序存储的

也依然是按照字节顺序存储的,例如字符串“abc”在内存中的连续四个字节分别是0x61、0x62、0x63、0x00。

E. 3 串顺序存储的结束标记是什么

。''。串的抽象数据类型是''它规定在串值后面加一个不计入串长度的结束标记字符,来表示串值的终结这个时候你要想知道此时的串长度就需要遍历计算一下。

F. 【数据结构】串的定长顺序储存,如何初始化

如果是用字符来存储,那用length指向它的长度, 存储如下 data[length++] = ch;

G. 串的定长顺序存储

这个是伪代码,不是C/C++的语法。在Pascal中存在类似的语法。
T[1..S1[0]]表示T的下标取值范围为1至s1[0],假定满足1<=S1[0]。这个范围可以包含S1[0]也可以不包含S1[0](具体是什么,要看具体的书中的习惯用法了)。
====
[原创回答团]

H. 请问一下,数据结构中串的顺序存储和链接存储要怎么实现啊

顺序存储的实现方法:使用数组

链接存储的实现方法:使用指针

I. 定长顺序串与堆串的区别

咨询记录 · 回答于2021-10-08

热点内容
视频软件源码 发布:2024-05-18 22:22:24 浏览:428
安卓换苹果sim卡去哪里换 发布:2024-05-18 22:21:29 浏览:636
顺丰薪资默认密码是多少 发布:2024-05-18 22:15:04 浏览:790
浏览器打不开服务器通信怎么办 发布:2024-05-18 21:32:22 浏览:961
创建存储空间 发布:2024-05-18 21:20:57 浏览:122
sql日期和时间 发布:2024-05-18 21:16:19 浏览:143
安卓网页怎么截取 发布:2024-05-18 20:53:56 浏览:972
在配置更新的时候没电关机怎么办 发布:2024-05-18 20:36:10 浏览:928
win7访问win2000 发布:2024-05-18 20:27:41 浏览:389
青岛人社局密码多少 发布:2024-05-18 20:19:10 浏览:735