日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

广义表(2)

發布時間:2024/4/17 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 广义表(2) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

計算廣義表原子結點個數

?

public int CountAtom() {return CountAtom(_Root); }public int CountAtom(GLNode<char> node) {int i = 0;if (node != null){switch (node.Type){case NodeType.Atom:i++;break;case NodeType.List:i+=CountAtom(node.Item as GLNode<char>);break;}return i + CountAtom(node.Next);}return 0; }

?

替換相同原子

?

public void Replace(char oldchar, char newchar) {Replace(_Root, oldchar, newchar); }public void Replace(GLNode<char> node,char oldchar,char newchar) {if (node != null){switch (node.Type){case NodeType.Atom:if ((char)node.Item == oldchar)node.Item = newchar;break;case NodeType.List:Replace(node.Item as GLNode<char>, oldchar, newchar);break;}Replace(node.Next,oldchar,newchar);} }

?

刪除相同原子

?

public GLNode<char> DeleteAtom(char key) {return DeleteAtom(_Root, key); }public GLNode<char> DeleteAtom(GLNode<char> node, char key) {GLNode<char> current = node;if (current != null){switch (current.Type){case NodeType.Atom:if ((char) current.Item == key)return DeleteAtom(current.Next, key);break;case NodeType.List:DeleteAtom(current.Item as GLNode<char>, key);break;}current.Next = DeleteAtom(current.Next, key);_Root = current;return current;}return null; }

?

廣義表逆置

將頭與尾交換,如a,b,c

則a與b,c;b與c交換,也是一個遞歸過程從尾交換開始,

public GLNode<char> Reverse(GLNode<char> node) {if (IsEmpty(node)) return null;switch (node.Type){case NodeType.Atom:if (node.Next != null)node = Append(Reverse(GetTail(node)), GetHead(node));break;case NodeType.List:node = Append(Reverse(GetTail(node)), new GLNode<char>() { Item = Reverse((GLNode<char>)node.Item), Type = NodeType.List });break;}return node; }public GLNode<char> Append(GLNode<char> head, GLNode<char> tail) {if (IsEmpty(head)) return tail;var pre = head;var cur = head.Next;while (cur != null){pre = cur;cur = cur.Next;}pre.Next = tail;return head; }

?

判斷兩個廣義表是否完全相等

轉載于:https://www.cnblogs.com/Clingingboy/archive/2011/01/22/1942009.html

總結

以上是生活随笔為你收集整理的广义表(2)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。