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 串相等 ...