資料結構之串與陣列(C語言,課後習題)

2021-10-06 01:13:43 字數 1371 閱讀 9703

1.假設以帶頭結點的迴圈鍊錶表示佇列,並且只設乙個指標指向隊尾元素結點(注意不設頭指標),試編寫相應的入佇列和出佇列的演算法。

void

enqueue

(linklist ﹡rear,

int x)

//rear是迴圈鍊錶的尾指標,該操作有點類似鍊錶操作中的尾插法建表

int

dequeue

(linklist ﹡rear)

//出隊操作

s = rear->next->next;

//s指向隊頭元素,

rear->next->next = s->next;

//隊頭元素出隊

temp = s->data;//將原隊頭元素的值存在變數temp中

if(s == rear) rear = rear->next;

//空佇列

free

(s);

return temp;

//函式返回值為原來的隊頭元素

}

2.假設以陣列sequ[m]存放迴圈佇列的元素,同時設變數rear和quelen分別指示迴圈佇列中隊尾元素的位置和內含元素的個數。試給出判別此迴圈佇列的隊滿條件,並寫出相應的入佇列和出佇列的演算法(在出隊的演算法中要返回隊頭元素)。

#define m 128

typedef

int datatype;

typedef

struct queue

sequeue;

intenqueue

(sequeue* q, datatype x)

//入隊的演算法

intdequeue

(sequeue* q)

3.若s乙個採用順序結構儲存的串,編寫乙個函式,要求從s中刪除從第i個字元開始的,長度為j的乙個子串。

seqstring*

delij

(seqstring* s,

int i,

int j)

else

printf

("無法進行刪除操作\n");

}

4.若x是採用單鏈表儲存的串,編寫乙個函式將其中的所有字元c替換成s字元

typedef

struct node

linkstring;

linkstring*

trans

(linkstring* s,

char c1,

char c2)

return s;

}

資料結構之串與陣列(C語言)

串的基本操作 假設有乙個順序串定義如下 define maxsize 100 typedef struct seqstr seqstr s 1.串的連線運算 seqstr strcat seqstr s,seqstr t printf r s n r ch return r 最後生成的串r為s t的...

資料結構之串與陣列

關於串 串是由零個或多個字元組成的有限序列,它的邏輯結構與線性表極為相似,可看作是一種特殊的線性表。串的元素序號從0開始。相關概念 1.串的長度 串中所包含的字元個數 2.空串 長度為0的串 在c語言中,串一般使用不可顯示的字元 0 作為串的結束符。3.子串 串中任意個連續的字元組成的子串行稱為串的...

資料結構 串 C語言

串的概述 串 字串 由n n 0 個字元組成的有限序列。一般記作s s0,s1,s2,sn 1 其中s稱作串名,n稱作串的長度,雙引號括起來的字串行稱作串的值。子串 乙個串中任意個連續的字元組成的子串行。主串 包含子串的串稱為子串的主串。該字元在串中的位置 乙個字元在乙個串中的位置序號 0 串相等 ...