C언어로 자료구조를 배우고 있습니다. <div><br></div> <div>배우고 있는 책에 리스트ADT를 이용한 라인 에디터 코드가 있어 이를 단순 연결리스트가 아닌 이중 연결리스트로 구현해 보려고 시도했는데요,</div> <div><br></div> <div>간단히 insert_node와 add함수만 잠깐 수정해주면 될 줄 알았더니 0번 라인에 입력하니 프로그램이 종료되는 현상이 발생하네요.. 아마 수정한 코드에서 오류가 발생한 것이 아닐까 한데 문제는 이 수정한 코드들도 책 안에 있는 코드를 따온 것이란 겁니다.. 어디가 잘못된건지 감이 안잡히네요 ㅠㅠ</div> <div><br></div> <div>제가 한 작업은 단순히 ListNode구조체에 link대신 llink와 rlink로 포인터를 부여하였고, insert_node함수를 단순 연결리스트의 함수가 아닌 이중 연결리스트의 삽입 함수로 변경한 것이 다입니다. <span class="Apple-tab-span" style="white-space:pre;"> </span>디버깅을 해보니 46번째줄 코드에서 에러가 나오네요..</div> <div><br></div> <div>0번에 입력할때는 프로그램이 종료되고, 1번이나 2번 다른 라인에 입력할때는 오류가 출력되는 대신 아무것도 저장되질 않습니다.. 대체 뭘 수정해야 정상적으로 작동할까요? 도움이 절실합니다!</div> <div><br></div> <div><div class="colorscripter-code" style="color:#f0f0f0;overflow:auto;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace;"> <table class="colorscripter-code-table" style="margin:0px;padding:0px;border:none;background-color:#272727;" cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:6px;border-right-width:2px;border-right-style:solid;border-right-color:#4f4f4f;"> <div style="margin:0px;padding:0px;text-align:right;color:#aaaaaa;line-height:130%;"> <div style="line-height:130%;">1</div> <div style="line-height:130%;">2</div> <div style="line-height:130%;">3</div> <div style="line-height:130%;">4</div> <div style="line-height:130%;">5</div> <div style="line-height:130%;">6</div> <div style="line-height:130%;">7</div> <div style="line-height:130%;">8</div> <div style="line-height:130%;">9</div> <div style="line-height:130%;">10</div> <div style="line-height:130%;">11</div> <div style="line-height:130%;">12</div> <div style="line-height:130%;">13</div> <div style="line-height:130%;">14</div> <div style="line-height:130%;">15</div> <div style="line-height:130%;">16</div> <div style="line-height:130%;">17</div> <div style="line-height:130%;">18</div> <div style="line-height:130%;">19</div> <div style="line-height:130%;">20</div> <div style="line-height:130%;">21</div> <div style="line-height:130%;">22</div> <div style="line-height:130%;">23</div> <div style="line-height:130%;">24</div> <div style="line-height:130%;">25</div> <div style="line-height:130%;">26</div> <div style="line-height:130%;">27</div> <div style="line-height:130%;">28</div> <div style="line-height:130%;">29</div> <div style="line-height:130%;">30</div> <div style="line-height:130%;">31</div> <div style="line-height:130%;">32</div> <div style="line-height:130%;">33</div> <div style="line-height:130%;">34</div> <div style="line-height:130%;">35</div> <div style="line-height:130%;">36</div> <div style="line-height:130%;">37</div> <div style="line-height:130%;">38</div> <div style="line-height:130%;">39</div> <div style="line-height:130%;">40</div> <div style="line-height:130%;">41</div> <div style="line-height:130%;">42</div> <div style="line-height:130%;">43</div> <div style="line-height:130%;">44</div> <div style="line-height:130%;">45</div> <div style="line-height:130%;">46</div> <div style="line-height:130%;">47</div> <div style="line-height:130%;">48</div> <div style="line-height:130%;">49</div> <div style="line-height:130%;">50</div> <div style="line-height:130%;">51</div> <div style="line-height:130%;">52</div> <div style="line-height:130%;">53</div> <div style="line-height:130%;">54</div> <div style="line-height:130%;">55</div> <div style="line-height:130%;">56</div> <div style="line-height:130%;">57</div> <div style="line-height:130%;">58</div> <div style="line-height:130%;">59</div> <div style="line-height:130%;">60</div> <div style="line-height:130%;">61</div> <div style="line-height:130%;">62</div> <div style="line-height:130%;">63</div> <div style="line-height:130%;">64</div> <div style="line-height:130%;">65</div> <div style="line-height:130%;">66</div> <div style="line-height:130%;">67</div> <div style="line-height:130%;">68</div> <div style="line-height:130%;">69</div> <div style="line-height:130%;">70</div> <div style="line-height:130%;">71</div> <div style="line-height:130%;">72</div> <div style="line-height:130%;">73</div> <div style="line-height:130%;">74</div> <div style="line-height:130%;">75</div> <div style="line-height:130%;">76</div> <div style="line-height:130%;">77</div> <div style="line-height:130%;">78</div> <div style="line-height:130%;">79</div> <div style="line-height:130%;">80</div> <div style="line-height:130%;">81</div> <div style="line-height:130%;">82</div> <div style="line-height:130%;">83</div> <div style="line-height:130%;">84</div> <div style="line-height:130%;">85</div> <div style="line-height:130%;">86</div> <div style="line-height:130%;">87</div> <div style="line-height:130%;">88</div> <div style="line-height:130%;">89</div> <div style="line-height:130%;">90</div> <div style="line-height:130%;">91</div> <div style="line-height:130%;">92</div> <div style="line-height:130%;">93</div> <div style="line-height:130%;">94</div> <div style="line-height:130%;">95</div> <div style="line-height:130%;">96</div> <div style="line-height:130%;">97</div> <div style="line-height:130%;">98</div> <div style="line-height:130%;">99</div> <div style="line-height:130%;">100</div> <div style="line-height:130%;">101</div> <div style="line-height:130%;">102</div> <div style="line-height:130%;">103</div> <div style="line-height:130%;">104</div> <div style="line-height:130%;">105</div> <div style="line-height:130%;">106</div> <div style="line-height:130%;">107</div> <div style="line-height:130%;">108</div> <div style="line-height:130%;">109</div> <div style="line-height:130%;">110</div> <div style="line-height:130%;">111</div> <div style="line-height:130%;">112</div> <div style="line-height:130%;">113</div> <div style="line-height:130%;">114</div> <div style="line-height:130%;">115</div> <div style="line-height:130%;">116</div> <div style="line-height:130%;">117</div> <div style="line-height:130%;">118</div> <div style="line-height:130%;">119</div> <div style="line-height:130%;">120</div> <div style="line-height:130%;">121</div> <div style="line-height:130%;">122</div> <div style="line-height:130%;">123</div> <div style="line-height:130%;">124</div> <div style="line-height:130%;">125</div> <div style="line-height:130%;">126</div> <div style="line-height:130%;">127</div> <div style="line-height:130%;">128</div> <div style="line-height:130%;">129</div> <div style="line-height:130%;">130</div> <div style="line-height:130%;">131</div> <div style="line-height:130%;">132</div> <div style="line-height:130%;">133</div> <div style="line-height:130%;">134</div> <div style="line-height:130%;">135</div> <div style="line-height:130%;">136</div> <div style="line-height:130%;">137</div> <div style="line-height:130%;">138</div> <div style="line-height:130%;">139</div> <div style="line-height:130%;">140</div> <div style="line-height:130%;">141</div> <div style="line-height:130%;">142</div> <div style="line-height:130%;">143</div> <div style="line-height:130%;">144</div> <div style="line-height:130%;">145</div> <div style="line-height:130%;">146</div> <div style="line-height:130%;">147</div> <div style="line-height:130%;">148</div> <div style="line-height:130%;">149</div> <div style="line-height:130%;">150</div> <div style="line-height:130%;">151</div> <div style="line-height:130%;">152</div> <div style="line-height:130%;">153</div> <div style="line-height:130%;">154</div> <div style="line-height:130%;">155</div> <div style="line-height:130%;">156</div> <div style="line-height:130%;">157</div> <div style="line-height:130%;">158</div> <div style="line-height:130%;">159</div> <div style="line-height:130%;">160</div> <div style="line-height:130%;">161</div> <div style="line-height:130%;">162</div> <div style="line-height:130%;">163</div> <div style="line-height:130%;">164</div> <div style="line-height:130%;">165</div> <div style="line-height:130%;">166</div> <div style="line-height:130%;">167</div> <div style="line-height:130%;">168</div> <div style="line-height:130%;">169</div> <div style="line-height:130%;">170</div> <div style="line-height:130%;">171</div> <div style="line-height:130%;">172</div> <div style="line-height:130%;">173</div> <div style="line-height:130%;">174</div> <div style="line-height:130%;">175</div> <div style="line-height:130%;">176</div> <div style="line-height:130%;">177</div> <div style="line-height:130%;">178</div> <div style="line-height:130%;">179</div> <div style="line-height:130%;">180</div> <div style="line-height:130%;">181</div> <div style="line-height:130%;">182</div> <div style="line-height:130%;">183</div> <div style="line-height:130%;">184</div> <div style="line-height:130%;">185</div> <div style="line-height:130%;">186</div> <div style="line-height:130%;">187</div> <div style="line-height:130%;">188</div> <div style="line-height:130%;">189</div> <div style="line-height:130%;">190</div> <div style="line-height:130%;">191</div> <div style="line-height:130%;">192</div> <div style="line-height:130%;">193</div> <div style="line-height:130%;">194</div> <div style="line-height:130%;">195</div> <div style="line-height:130%;">196</div> <div style="line-height:130%;">197</div> <div style="line-height:130%;">198</div> <div style="line-height:130%;">199</div> <div style="line-height:130%;">200</div> <div style="line-height:130%;">201</div> <div style="line-height:130%;">202</div> <div style="line-height:130%;">203</div> <div style="line-height:130%;">204</div> <div style="line-height:130%;">205</div> <div style="line-height:130%;">206</div> <div style="line-height:130%;">207</div> <div style="line-height:130%;">208</div> <div style="line-height:130%;">209</div> <div style="line-height:130%;">210</div> <div style="line-height:130%;">211</div> <div style="line-height:130%;">212</div> <div style="line-height:130%;">213</div> <div style="line-height:130%;">214</div> <div style="line-height:130%;">215</div> <div style="line-height:130%;">216</div> <div style="line-height:130%;">217</div> <div style="line-height:130%;">218</div> <div style="line-height:130%;">219</div> <div style="line-height:130%;">220</div> <div style="line-height:130%;">221</div> <div style="line-height:130%;">222</div> <div style="line-height:130%;">223</div> <div style="line-height:130%;">224</div> <div style="line-height:130%;">225</div> <div style="line-height:130%;">226</div> <div style="line-height:130%;">227</div> <div style="line-height:130%;">228</div> <div style="line-height:130%;">229</div> <div style="line-height:130%;">230</div> <div style="line-height:130%;">231</div> <div style="line-height:130%;">232</div> <div style="line-height:130%;">233</div> <div style="line-height:130%;">234</div> <div style="line-height:130%;">235</div> <div style="line-height:130%;">236</div> <div style="line-height:130%;">237</div> <div style="line-height:130%;">238</div> <div style="line-height:130%;">239</div> <div style="line-height:130%;">240</div> <div style="line-height:130%;">241</div> <div style="line-height:130%;">242</div> <div style="line-height:130%;">243</div> <div style="line-height:130%;">244</div> <div style="line-height:130%;">245</div> <div style="line-height:130%;">246</div> <div style="line-height:130%;">247</div> <div style="line-height:130%;">248</div> <div style="line-height:130%;">249</div> <div style="line-height:130%;">250</div> <div style="line-height:130%;">251</div> <div style="line-height:130%;">252</div> <div style="line-height:130%;">253</div> <div style="line-height:130%;">254</div> <div style="line-height:130%;">255</div> <div style="line-height:130%;">256</div> <div style="line-height:130%;">257</div> <div style="line-height:130%;">258</div> <div style="line-height:130%;">259</div> <div style="line-height:130%;">260</div> <div style="line-height:130%;">261</div> <div style="line-height:130%;">262</div> <div style="line-height:130%;">263</div> <div style="line-height:130%;">264</div> <div style="line-height:130%;">265</div> <div style="line-height:130%;">266</div> <div style="line-height:130%;">267</div> <div style="line-height:130%;">268</div> <div style="line-height:130%;">269</div></div></td> <td style="padding:6px 0px;"> <div style="margin:0px;padding:0px;color:#f0f0f0;line-height:130%;"> <div style="padding:0px 6px;white-space:pre;line-height:130%;"><span style="color:#0086b3;">#include</span> <span style="color:#ff3399;"><</span>stdio.h<span style="color:#ff3399;">></span></div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"><span style="color:#0086b3;">#include</span> <span style="color:#ff3399;"><</span>stdlib.h<span style="color:#ff3399;">></span></div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"><span style="color:#0086b3;">#include</span> <span style="color:#ff3399;"><</span>ctype.h<span style="color:#ff3399;">></span></div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"><span style="color:#0086b3;">#include</span> <span style="color:#ff3399;"><</span>string.h<span style="color:#ff3399;">></span></div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"><span style="color:#0086b3;">#include</span> <span style="color:#ff3399;"><</span>limits.h<span style="color:#ff3399;">></span></div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"><span style="color:#0086b3;">#include</span> <span style="color:#ff3399;"><</span>malloc.h<span style="color:#ff3399;">></span></div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> </div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> </div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"><span style="color:#0086b3;">#define</span> MAX_CHAR_PER_LINE <span style="color:#c10aff;">1000</span></div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"><span style="color:#0086b3;">#define</span> MAX_NAME <span style="color:#c10aff;">256</span></div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"><span style="color:#ff3399;">void</span> warning(<span style="color:#4be6fa;">char</span> <span style="color:#ff3399;">*</span>);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"><span style="color:#ff3399;">void</span> error(<span style="color:#4be6fa;">char</span> <span style="color:#ff3399;">*</span>);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> </div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"><span style="color:#0086b3;">#define</span> FALSE <span style="color:#c10aff;">0</span></div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"><span style="color:#0086b3;">#define</span> TRUE <span style="color:#c10aff;">1</span></div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> </div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"><span style="color:#ff3399;">typedef</span> <span style="color:#ff3399;">struct</span>{</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#4be6fa;">char</span> a[MAX_CHAR_PER_LINE];</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;">} element;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> </div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"><span style="color:#ff3399;">typedef</span> <span style="color:#ff3399;">struct</span> ListNode{</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> element data;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#ff3399;">struct</span> ListNode <span style="color:#ff3399;">*</span>llink;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#ff3399;">struct</span> ListNode <span style="color:#ff3399;">*</span>rlink;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;">} ListNode;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> </div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"><span style="color:#ff3399;">typedef</span> <span style="color:#ff3399;">struct</span>{</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> ListNode <span style="color:#ff3399;">*</span>head;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#4be6fa;">int</span> length;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;">} LinkedListType;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> </div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"><span style="color:#ff3399;">void</span> init(LinkedListType <span style="color:#ff3399;">*</span>list) <span style="color:#999999;">// List의 초기화</span></div> <div style="padding:0px 6px;white-space:pre;line-height:130%;">{</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#ff3399;">if</span>(list<span style="color:#ff3399;">=</span><span style="color:#ff3399;">=</span>NULL) <span style="color:#ff3399;">return</span>;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> list<span style="color:#ff3399;">-</span><span style="color:#ff3399;">></span>length<span style="color:#ff3399;">=</span><span style="color:#c10aff;">0</span>;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> list<span style="color:#ff3399;">-</span><span style="color:#ff3399;">></span>head<span style="color:#ff3399;">=</span>NULL;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;">}</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> </div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"><span style="color:#ff3399;">void</span> insert_node(ListNode <span style="color:#ff3399;">*</span>before, ListNode <span style="color:#ff3399;">*</span>new_node)</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;">{</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> new_node<span style="color:#ff3399;">-</span><span style="color:#ff3399;">></span>llink<span style="color:#ff3399;">=</span>before;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> new_node<span style="color:#ff3399;">-</span><span style="color:#ff3399;">></span>rlink<span style="color:#ff3399;">=</span>before<span style="color:#ff3399;">-</span><span style="color:#ff3399;">></span>rlink;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> before<span style="color:#ff3399;">-</span><span style="color:#ff3399;">></span>rlink<span style="color:#ff3399;">-</span><span style="color:#ff3399;">></span>llink<span style="color:#ff3399;">=</span>new_node;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> before<span style="color:#ff3399;">-</span><span style="color:#ff3399;">></span>rlink<span style="color:#ff3399;">=</span>new_node;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;">}</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> </div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"><span style="color:#ff3399;">void</span> remove_node(ListNode <span style="color:#ff3399;">*</span>phead_node, ListNode <span style="color:#ff3399;">*</span>removed)</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;">{</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#ff3399;">if</span>(removed<span style="color:#ff3399;">=</span><span style="color:#ff3399;">=</span>phead_node) <span style="color:#ff3399;">return</span>;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> removed<span style="color:#ff3399;">-</span><span style="color:#ff3399;">></span>llink<span style="color:#ff3399;">-</span><span style="color:#ff3399;">></span>rlink<span style="color:#ff3399;">=</span>removed<span style="color:#ff3399;">-</span><span style="color:#ff3399;">></span>rlink;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> removed<span style="color:#ff3399;">-</span><span style="color:#ff3399;">></span>rlink<span style="color:#ff3399;">-</span><span style="color:#ff3399;">></span>llink<span style="color:#ff3399;">=</span>removed<span style="color:#ff3399;">-</span><span style="color:#ff3399;">></span>llink;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> free(removed);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;">}</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> </div> <div style="padding:0px 6px;white-space:pre;line-height:130%;">ListNode <span style="color:#ff3399;">*</span>get_node_at(LinkedListType <span style="color:#ff3399;">*</span>list, <span style="color:#4be6fa;">int</span> pos)</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;">{</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#4be6fa;">int</span> i;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> ListNode <span style="color:#ff3399;">*</span>tmp_node<span style="color:#ff3399;">=</span>list<span style="color:#ff3399;">-</span><span style="color:#ff3399;">></span>head;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#ff3399;">if</span>(pos<span style="color:#ff3399;"><</span><span style="color:#c10aff;">0</span>) <span style="color:#ff3399;">return</span> NULL;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#ff3399;">for</span>(i<span style="color:#ff3399;">=</span><span style="color:#c10aff;">0</span>;i<span style="color:#ff3399;"><</span>pos;i<span style="color:#ff3399;">+</span><span style="color:#ff3399;">+</span>) tmp_node<span style="color:#ff3399;">=</span>tmp_node<span style="color:#ff3399;">-</span><span style="color:#ff3399;">></span>rlink;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#ff3399;">return</span> tmp_node;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;">}</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> </div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"><span style="color:#4be6fa;">int</span> get_length(LinkedListType <span style="color:#ff3399;">*</span>list){</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#ff3399;">return</span> list<span style="color:#ff3399;">-</span><span style="color:#ff3399;">></span>length;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;">}</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> </div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"><span style="color:#ff3399;">void</span> add(LinkedListType <span style="color:#ff3399;">*</span>list, <span style="color:#4be6fa;">int</span> position, element data)</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;">{</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> ListNode <span style="color:#ff3399;">*</span>p;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#ff3399;">if</span>((position<span style="color:#ff3399;">></span><span style="color:#ff3399;">=</span><span style="color:#c10aff;">0</span>)&&(position<span style="color:#ff3399;"><</span><span style="color:#ff3399;">=</span>list<span style="color:#ff3399;">-</span><span style="color:#ff3399;">></span>length)){</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> ListNode <span style="color:#ff3399;">*</span>node<span style="color:#ff3399;">=</span>(ListNode <span style="color:#ff3399;">*</span>)malloc(<span style="color:#ff3399;">sizeof</span>(ListNode));</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#ff3399;">if</span>(node<span style="color:#ff3399;">=</span><span style="color:#ff3399;">=</span>NULL) error(<span style="color:#ffd500;">"Memory Allocate ERROR!"</span>);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> node<span style="color:#ff3399;">-</span><span style="color:#ff3399;">></span>data<span style="color:#ff3399;">=</span>data;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> p<span style="color:#ff3399;">=</span>get_node_at(list, position<span style="color:#ff3399;">-</span><span style="color:#c10aff;">1</span>);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> insert_node(p, node);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> list<span style="color:#ff3399;">-</span><span style="color:#ff3399;">></span>length<span style="color:#ff3399;">+</span><span style="color:#ff3399;">+</span>;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> }</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;">}</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> </div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"><span style="color:#ff3399;">void</span> add_last(LinkedListType <span style="color:#ff3399;">*</span>list, element data)</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;">{</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> add(list,get_length(list),data);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;">}</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> </div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"><span style="color:#ff3399;">void</span> add_first(LinkedListType <span style="color:#ff3399;">*</span>list, element data)</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;">{</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> add(list, <span style="color:#c10aff;">0</span>, data);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;">}</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> </div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"><span style="color:#4be6fa;">int</span> is_empty(LinkedListType <span style="color:#ff3399;">*</span>list)</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;">{</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#ff3399;">if</span>(list<span style="color:#ff3399;">-</span><span style="color:#ff3399;">></span>head<span style="color:#ff3399;">=</span><span style="color:#ff3399;">=</span>NULL) <span style="color:#ff3399;">return</span> <span style="color:#c10aff;">1</span>;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#ff3399;">else</span> <span style="color:#ff3399;">return</span> <span style="color:#c10aff;">0</span>;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;">}</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> </div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"><span style="color:#ff3399;">void</span> <span style="color:#ff3399;">delete</span>(LinkedListType <span style="color:#ff3399;">*</span>list, <span style="color:#4be6fa;">int</span> pos)</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;">{</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#ff3399;">if</span>(<span style="color:#ff3399;">!</span>is_empty(list)&&(pos<span style="color:#ff3399;">></span><span style="color:#ff3399;">=</span><span style="color:#c10aff;">0</span>)&&(pos<span style="color:#ff3399;"><</span>list<span style="color:#ff3399;">-</span><span style="color:#ff3399;">></span>length)){</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> ListNode <span style="color:#ff3399;">*</span>p<span style="color:#ff3399;">=</span>get_node_at(list, pos<span style="color:#ff3399;">-</span><span style="color:#c10aff;">1</span>);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> remove_node(p,(p<span style="color:#ff3399;">!</span><span style="color:#ff3399;">=</span>NULL)?p<span style="color:#ff3399;">-</span><span style="color:#ff3399;">></span>rlink:NULL);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> list<span style="color:#ff3399;">-</span><span style="color:#ff3399;">></span>length<span style="color:#ff3399;">-</span><span style="color:#ff3399;">-</span>;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> }</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;">}</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> </div> <div style="padding:0px 6px;white-space:pre;line-height:130%;">element get_entry(LinkedListType <span style="color:#ff3399;">*</span>list, <span style="color:#4be6fa;">int</span> pos) <span style="color:#999999;">// 주어진 위치에 해당하는 데이터 반환 </span></div> <div style="padding:0px 6px;white-space:pre;line-height:130%;">{</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> ListNode <span style="color:#ff3399;">*</span>p;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#ff3399;">if</span>(pos<span style="color:#ff3399;">></span><span style="color:#ff3399;">=</span>list<span style="color:#ff3399;">-</span><span style="color:#ff3399;">></span>length) error(<span style="color:#ffd500;">"Pos ERROR!"</span>);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> p<span style="color:#ff3399;">=</span>get_node_at(list, pos);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#ff3399;">return</span> p<span style="color:#ff3399;">-</span><span style="color:#ff3399;">></span>data;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;">}</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> </div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"><span style="color:#ff3399;">void</span> clear(LinkedListType <span style="color:#ff3399;">*</span>list) <span style="color:#999999;">// 모든 노드를 삭제 </span></div> <div style="padding:0px 6px;white-space:pre;line-height:130%;">{</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#4be6fa;">int</span> i;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#ff3399;">for</span>(i<span style="color:#ff3399;">=</span><span style="color:#c10aff;">0</span>;i<span style="color:#ff3399;"><</span>list<span style="color:#ff3399;">-</span><span style="color:#ff3399;">></span>length;i<span style="color:#ff3399;">+</span><span style="color:#ff3399;">+</span>)</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#ff3399;">delete</span>(list, i);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;">}</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> </div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"><span style="color:#ff3399;">void</span> display(LinkedListType <span style="color:#ff3399;">*</span>buffer) <span style="color:#999999;">// buffer의 내용 출력 </span></div> <div style="padding:0px 6px;white-space:pre;line-height:130%;">{</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#4be6fa;">int</span> i;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> ListNode <span style="color:#ff3399;">*</span>tmp_node;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> tmp_node<span style="color:#ff3399;">=</span>buffer<span style="color:#ff3399;">-</span><span style="color:#ff3399;">></span>head;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> </div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#4be6fa;">printf</span>(<span style="color:#ffd500;">"********************\n"</span>);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#ff3399;">for</span>(i<span style="color:#ff3399;">=</span><span style="color:#c10aff;">0</span>;i<span style="color:#ff3399;"><</span>buffer<span style="color:#ff3399;">-</span><span style="color:#ff3399;">></span>length;i<span style="color:#ff3399;">+</span><span style="color:#ff3399;">+</span>){</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#4be6fa;">printf</span>(<span style="color:#ffd500;">"%s"</span>, tmp_node<span style="color:#ff3399;">-</span><span style="color:#ff3399;">></span>data.a);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> tmp_node<span style="color:#ff3399;">=</span>tmp_node<span style="color:#ff3399;">-</span><span style="color:#ff3399;">></span>rlink;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> }</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#4be6fa;">printf</span>(<span style="color:#ffd500;">"********************\n"</span>);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;">}</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> </div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"><span style="color:#ff3399;">void</span> warning(<span style="color:#4be6fa;">char</span> <span style="color:#ff3399;">*</span>message) <span style="color:#999999;">// 경고 메세지 출력</span></div> <div style="padding:0px 6px;white-space:pre;line-height:130%;">{</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> fprintf(stderr, <span style="color:#ffd500;">"%s\n"</span>, message);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;">}</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> </div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"><span style="color:#ff3399;">void</span> error(<span style="color:#4be6fa;">char</span> <span style="color:#ff3399;">*</span>message) <span style="color:#999999;">// 에러 메세지 출력</span></div> <div style="padding:0px 6px;white-space:pre;line-height:130%;">{</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> fprintf(stderr, <span style="color:#ffd500;">"%s\n"</span>, message);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> exit(<span style="color:#c10aff;">1</span>);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;">}</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> </div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"><span style="color:#ff3399;">void</span> help() <span style="color:#999999;">// 메뉴 출력</span></div> <div style="padding:0px 6px;white-space:pre;line-height:130%;">{</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#4be6fa;">printf</span>(<span style="color:#ffd500;">"********************\n"</span>);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#4be6fa;">printf</span>(<span style="color:#ffd500;">"i: INSERT\n"</span>);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#4be6fa;">printf</span>(<span style="color:#ffd500;">"d: DELETE\n"</span>);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#4be6fa;">printf</span>(<span style="color:#ffd500;">"r: READ FILE\n"</span>);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#4be6fa;">printf</span>(<span style="color:#ffd500;">"w: WRITE FILE\n"</span>);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#4be6fa;">printf</span>(<span style="color:#ffd500;">"q: QUIT\n"</span>);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#4be6fa;">printf</span>(<span style="color:#ffd500;">"********************\n"</span>);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;">}</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> </div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"><span style="color:#ff3399;">void</span> read_file(LinkedListType <span style="color:#ff3399;">*</span>buffer) <span style="color:#999999;">// disk file로부터 data를 읽음</span></div> <div style="padding:0px 6px;white-space:pre;line-height:130%;">{</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#4be6fa;">char</span> fname[MAX_NAME];</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> FILE <span style="color:#ff3399;">*</span>fd;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> element p;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> </div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#ff3399;">if</span>(<span style="color:#ff3399;">!</span>is_empty(buffer)){</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> clear(buffer);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> }</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> init(buffer);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> </div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#4be6fa;">printf</span>(<span style="color:#ffd500;">"FILE NAME: "</span>);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#4be6fa;">scanf</span>(<span style="color:#ffd500;">"%s"</span>, fname);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#ff3399;">if</span>((fd<span style="color:#ff3399;">=</span>fopen(fname,<span style="color:#ffd500;">"r"</span>))<span style="color:#ff3399;">=</span><span style="color:#ff3399;">=</span>NULL){</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> warning(<span style="color:#ffd500;">"Can't open file.\n"</span>);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#ff3399;">return</span>;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> }</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#ff3399;">while</span>(fgets(p.a, MAX_CHAR_PER_LINE, fd)){</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> add_last(buffer, p);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> }</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> fclose(fd);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> display(buffer);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;">}</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> </div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"><span style="color:#ff3399;">void</span> write_file(LinkedListType <span style="color:#ff3399;">*</span>buffer) <span style="color:#999999;">// buffer에 있는 data를 disk file에 씀</span></div> <div style="padding:0px 6px;white-space:pre;line-height:130%;">{</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> FILE <span style="color:#ff3399;">*</span>fd;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#4be6fa;">char</span> fname[MAX_NAME];</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> element p;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#4be6fa;">int</span> i;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> </div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#4be6fa;">printf</span>(<span style="color:#ffd500;">"FILE NAME: "</span>);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#4be6fa;">scanf</span>(<span style="color:#ffd500;">"%s"</span>, fname);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#ff3399;">if</span>((fd<span style="color:#ff3399;">=</span>fopen(fname, <span style="color:#ffd500;">"w"</span>))<span style="color:#ff3399;">=</span><span style="color:#ff3399;">=</span>NULL){</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#4be6fa;">printf</span>(<span style="color:#ffd500;">"Can't open file.\n"</span>);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#ff3399;">return</span>;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> }</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#ff3399;">for</span>(i<span style="color:#ff3399;">=</span><span style="color:#c10aff;">0</span>;i<span style="color:#ff3399;"><</span>get_length(buffer);i<span style="color:#ff3399;">+</span><span style="color:#ff3399;">+</span>){</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> p<span style="color:#ff3399;">=</span>get_entry(buffer, i);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> fputs(p.a, fd);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> }</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> fclose(fd);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> display(buffer);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;">}</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> </div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"><span style="color:#ff3399;">void</span> delete_line(LinkedListType <span style="color:#ff3399;">*</span>buffer) <span style="color:#999999;">// 하나의 라인 삭제 </span></div> <div style="padding:0px 6px;white-space:pre;line-height:130%;">{</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#4be6fa;">int</span> position;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> </div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#ff3399;">if</span>(is_empty(buffer))</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#4be6fa;">printf</span>(<span style="color:#ffd500;">"Line is already empty!\n"</span>);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#ff3399;">else</span></div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> {</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#4be6fa;">printf</span>(<span style="color:#ffd500;">"Input line number: "</span>);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#4be6fa;">scanf</span>(<span style="color:#ffd500;">"%d"</span>,&position);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#ff3399;">delete</span>(buffer, position);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> }</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> display(buffer);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;">}</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> </div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"><span style="color:#ff3399;">void</span> insert_line(LinkedListType <span style="color:#ff3399;">*</span>buffer) <span style="color:#999999;">// 하나의 라인 삽입</span></div> <div style="padding:0px 6px;white-space:pre;line-height:130%;">{</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#4be6fa;">int</span> position;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#4be6fa;">char</span> line[MAX_CHAR_PER_LINE];</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> element p;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> </div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#4be6fa;">printf</span>(<span style="color:#ffd500;">"Input line number: "</span>);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#4be6fa;">scanf</span>(<span style="color:#ffd500;">"%d"</span>, &position);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> </div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#4be6fa;">printf</span>(<span style="color:#ffd500;">"Input: "</span>);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> fflush(stdin);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> fgets(line, MAX_CHAR_PER_LINE, stdin);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> strcpy(p.a, line);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> add(buffer, position, p);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> display(buffer);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;">}</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> </div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"><span style="color:#ff3399;">void</span> do_command(LinkedListType <span style="color:#ff3399;">*</span>buffer, <span style="color:#4be6fa;">char</span> command) <span style="color:#999999;">// 커맨드 창 출력</span></div> <div style="padding:0px 6px;white-space:pre;line-height:130%;">{</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#ff3399;">switch</span>(command)</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> {</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#ff3399;">case</span> <span style="color:#ffd500;">'d'</span>:</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> delete_line(buffer);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#ff3399;">break</span>;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#ff3399;">case</span> <span style="color:#ffd500;">'i'</span>:</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> insert_line(buffer);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#ff3399;">break</span>;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#ff3399;">case</span> <span style="color:#ffd500;">'r'</span>:</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> read_file(buffer);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#ff3399;">break</span>;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#ff3399;">case</span> <span style="color:#ffd500;">'w'</span>:</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> write_file(buffer);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#ff3399;">break</span>;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#ff3399;">case</span> <span style="color:#ffd500;">'q'</span>:</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#ff3399;">break</span>;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> }</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;">}</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> </div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"><span style="color:#4be6fa;">int</span> main()</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;">{</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#4be6fa;">char</span> command;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> LinkedListType buffer;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> </div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> init(&buffer);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#ff3399;">do</span>{</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> help();</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> command<span style="color:#ff3399;">=</span>getchar();</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> do_command(&buffer, command);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> fflush(stdin);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> } <span style="color:#ff3399;">while</span>(command<span style="color:#ff3399;">!</span><span style="color:#ff3399;">=</span><span style="color:#ffd500;">'q'</span>);</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> </div> <div style="padding:0px 6px;white-space:pre;line-height:130%;"> <span style="color:#ff3399;">return</span> <span style="color:#c10aff;">0</span>;</div> <div style="padding:0px 6px;white-space:pre;line-height:130%;">}</div></div> <div style="text-align:right;margin-top:-13px;margin-right:5px;font-size:9px;font-style:italic;"><a target="_blank" href="http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f;text-decoration:none;">Colored by Color Scripter</a></div></td> <td style="vertical-align:bottom;padding:0px 2px 4px 0px;"><a target="_blank" href="http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:#FFFFFF;"><span style="font-size:9px;padding:1px;background-color:#4f4f4f;">cs</span></a></td></tr></tbody></table></div></div>
출처 |
C언어로 쉽게 풀어쓴 자료구조(생능출판) |
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.