當前位置:首頁 » 存儲配置 » 串順序存儲

串順序存儲

發布時間: 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

熱點內容
停車場管理系統c語言 發布:2025-01-16 09:02:35 瀏覽:437
學校宣傳片拍攝腳本 發布:2025-01-16 09:00:50 瀏覽:155
ubuntuphpmcrypt 發布:2025-01-16 08:26:46 瀏覽:429
安卓圖片如何添加蘋果的水墨印 發布:2025-01-16 08:18:12 瀏覽:731
fmp腳本 發布:2025-01-16 08:12:23 瀏覽:231
nagios自定義腳本 發布:2025-01-16 08:09:52 瀏覽:365
安卓為什麼下不了方舟生存進化 發布:2025-01-16 08:02:32 瀏覽:194
如何登錄男朋友的微信密碼 發布:2025-01-16 07:41:14 瀏覽:194
寶駿解壓流程 發布:2025-01-16 07:35:35 瀏覽:2
兩匹壓縮機多少錢 發布:2025-01-16 07:29:19 瀏覽:635