當前位置:首頁 » 編程語言 » 數據結構c語言版題

數據結構c語言版題

發布時間: 2023-06-18 14:22:45

c語言編程 數據結構題

棧先進後出,隊列先進先出,隊列的順序等價於棧的出棧順序。寫了個簡單的驗證程序,初始的出棧順序必須無誤

#include<iostream>
usingstd::cout;

//iStack元素值有序,簡化了編程,否則就要藉助於下標的有序性
//'g'作為一個額外的標記,取到此值時,表示所有元素都已入棧
chariStack[]={'a','b','c','d','e','f','g'};
charoStack[]={'b','d','f','e','c','a'};

intno=1;

//sp用於指示iStack未入棧的元素
intsp=0;

charTop()
{
returniStack[sp];
}

//ch及之前元素入棧
voidPush(charch)
{
charcc=Top();
while(cc<=ch)
{
printf("(%2d)Push: %c ",no++,cc);
sp++;
cc=Top();
}
}

voidPop(charch)
{
if(ch>=Top()) //當前要出棧的元素未入棧
Push(ch);

printf("(%2d)Pop: %c ",no++,ch);
}

intmain()
{
intcount=0;
intlen=sizeof(oStack);

//1
printf("入棧順序: ");
for(inti=0;i<len;i++)
printf("%c",iStack[i]);
printf(" ");

//2
printf("出棧順序: ");
for(inti=0;i<len;i++)
printf("%c",oStack[i]);
printf(" ");

//3
printf("出入棧操作: ");
while(count<len)
{
Pop(oStack[count]);
count++;
}

return0;

}

Ⅱ 求助數據結構題用C語言做

1: 因為要刪除那些即在B表又在C表中的元素,所以A,B,C三個表中都會有這個元素。那麼用指針遍歷A表,用另外兩個指針遍歷B,C。查找B,C中同A的元素,因為3個表都是有序的,可以採用些簡單的比較。找到後刪除。
2:void AE(stack &s)
{
int stack (s); //得到傳遞過來的棧
push(s,3); // 3進棧
push(s,4); // 4進棧
int x=pop(s)+2*pop(s); // x = 3 + 2 * 4
push(s,x); // x 進棧
int a[5]={2,5,8,22,15};
for(j=0;j<5;j++)
push(s,a[i]) // A數組進棧
while(!stackempty(s)) // 直到棧空
printf("%d",2*pop(s)); //輸出 2*棧中每個元素

結果自己想了。

Ⅲ 數據結構(c語言版)題目求答案

3.28
void InitCiQueue(CiQueue&Q)//初始化循環鏈表表示的隊列Q
{
Q=(CiLNode*)malloc(sizeof(CiLNode));
Q->next=Q;
}//InitCiQueue
voidEnCiQueue(CiQueue&Q,int x)//把元素x插入循環列表表示的隊列Q,Q指向隊尾元素,Q->next指向頭結點,Q->next->next指向隊尾元素
{
p=(CiLNode*)malloc(sizeof(CiLNode));
p->data=x;
p->next=Q->next;//直接把p加在Q的後面
Q->next=p;
Q=p;//修改尾指針
}
Status DeCiQueue(CiQueue&Q,int x)//從循環鏈表表示的隊列Q頭部刪除元素x
{
if(Q==Q->next)return INFEASIBLE;//隊列已空
p=Q->next->next;
x=p->data;
Q->next->next=p->next;
free(p);
rturn OK;
}//DeCiqueue

3.31

int Palindrome_Test()
{
InitStack(S);InitQueue(Q);
while((c=getchar())!='@')
{
Push(S,c);EnQueue(Q,c);
}
while(!StackEmpty(S))
{
pop(S,a);DeQueue(Q,b);
if(a!=b)return ERROR;
}
return OK;
}

Ⅳ 關於數據結構(C語言)的幾個題

1.

voidconverse(intn,intd){
SqStackS;//新旦頃搭建一個棧
InitStack(S);//初始化棧
intk,e;
while(n>0){
k=n%d;
push(S,k);
n=n/d;
}//將余數進棧
while(S.top!=S.base){
模拿pop(S,e);
printf("%1d",e);
}//輸出結果
}


8.

先序遍歷:ABCDEF

中序遍歷:BCDAFE

後序遍歷:DCBFEA

熱點內容
卡羅拉的配置一般買哪個好一點 發布:2025-02-12 11:20:03 瀏覽:742
沒有伺服器的IP怎麼連上 發布:2025-02-12 11:19:55 瀏覽:79
編程sqs 發布:2025-02-12 11:09:55 瀏覽:238
electron脫離編譯環境 發布:2025-02-12 11:08:21 瀏覽:68
安卓一體機喇叭插口在哪裡 發布:2025-02-12 11:07:37 瀏覽:866
廣東江門首選dns伺服器地址 發布:2025-02-12 10:56:55 瀏覽:954
台灣大量IP伺服器 發布:2025-02-12 10:51:43 瀏覽:375
sship訪問伺服器 發布:2025-02-12 10:50:16 瀏覽:98
人機局腳本 發布:2025-02-12 10:48:03 瀏覽:66
安卓哪裡可以下2k17 發布:2025-02-12 10:45:36 瀏覽:317