❶ 順序存儲和鏈式存儲屬於什麼存儲結構
一般,存儲結構分為:順序順序存儲結構和鏈式存儲結構。
常見鏈式存儲結構有:鏈表,樹,圖。
❷ 串的順序存儲結構和鏈式存儲結構該怎樣表示呀!
順序存儲結構就是 數組比如int a[5],通過下標引用;
鏈式存儲就是 鏈表
❸ 畫出串str=『Iamastudent』的一種順序存儲結構和一種鏈式存儲結構。
存在唯一的一個被稱作「第一個」的數據元素,(2) 存在唯一的一個被稱作「最後一個」的數據元素,(3) 除第一個外,集合中的每個數據元素均只有一個前繼元素,(4)除最後一個外,集合中的每個數據元素均只有一個後繼元素。
❹ 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("選擇錯誤! ");
}
}
❺ 鏈式存儲結構和順序存儲結構的區別
區別如下:
1、鏈表存儲結構的內存地址不一定是連續的,但順序存儲結構的內存地址一定是連續的。
2、鏈式存儲適用於在較頻繁地插入、刪除、更新元素是,而順序存儲結構適用於頻繁查詢時使用。
3、順序比鏈式節約空間,是因為鏈式結構每一個節點都有一個指針存儲域。順序支持隨機存取,方便操作。鏈式的要比順序的方便,快捷。
官方一點來說可以使用網路的介紹:順序存儲結構是存儲結構類型中的一種,該結構是把邏輯上相鄰的結點存儲在物理位置上相鄰的存儲單元中,結點之間的邏輯關系由存儲單元的鄰接關系來體現。
當然不得不說一般這種官方的解釋都是不太適合我的,所以用小甲魚的方式來說這個概念的話,簡單來說就是,用一段連續的地址存放數據元素,數據間的邏輯關系和物理關系相同。
優點1:存儲密度大,空間利用度高,比鏈式存儲節約空間。
優點2:存儲操作上方便操作,順序支持隨機存取,查找會比較容易。
缺點1:插入或者刪除元素時不方便,花費的時間更多。
❻ 字元串的順序存儲結構簡稱為順序串,是指採用一組地址連續的存儲單元依次存放串值中的各個字元,
順序串說的就是將整個字元串儲存在內存忠開辟的連續的內存中。
我仔細看了你的話,不過是串值和串的區別是嗎?
串就是強調整個字元串、串值強調字元串中存放的單個字元。
感覺差別不大,不必坐太多糾纏。理解知道那個意思才是最重要的!
❼ 順序存儲結構和鏈式存儲結構優缺點
順序存儲結構和鏈式存儲結構的區別
鏈表存儲結構的內存地址不一定是連續的,但順序存儲結構的內存地址一定是連續的;
鏈式存儲適用於在較頻繁地插入、刪除、更新元素時,而順序存儲結構適用於頻繁查詢時使用。
順序存儲結構和鏈式存儲結構的優缺點:
空間上
順序比鏈式節約空間。是因為鏈式結構每一個節點都有一個指針存儲域。
存儲操作上:
順序支持隨機存取,方便操作
插入和刪除上:
鏈式的要比順序的方便(因為插入的話順序表也很方便,問題是順序表的插入要執行更大的空間復雜度,包括一個從表頭索引以及索引後的元素後移,而鏈表是索引後,插入就完成了)
例如:當你在字典中查詢一個字母j的時候,你可以選擇兩種方式,第一,順序查詢,從第一頁依次查找直到查詢到j。第二,索引查詢,從字典的索引中,直接查出j的頁數,直接找頁數,或許是比順序查詢最快的。
❽ 順序和鏈式存儲結構哪個能存儲有序表
覺得順序存儲結構和鏈式存儲結構都可以存儲有序表。順序存儲結構可以預先預留一定空間(如一維數組),鏈表存儲結構比較靈活,可以動態開辟空間,需要時增加。要用哪種存儲結構要看你的有序表要進行什麼操作了。
❾ 請問一下,數據結構中串的順序存儲和鏈接存儲要怎麼實現啊
順序存儲的實現方法:使用數組
鏈接存儲的實現方法:使用指針
❿ 常用的串存儲結構是哪一種
**線性存儲結構 **樹形存儲結構 **圖形存儲結構 線性存儲結構:包括順序,鏈接,索引,散列四種