正在加载图片...
template<class Type> void Lisk<Type> sifiToRight( ListNode<Type>*& p, ListNode<Type> * pr, int k)( f(p== null & pr I=first)i ∥已经在链的最右端 cout<<"已经在链的最右端,不能再右移。”<<endl; return int i; ListNode<Type>*q if(P== NULL ∥从链头开始 p=firs; 3 ∥重置p到链头也算一次右移 hile(p l=NULL &&i<k)i ∥右移k个结点 q=p→link;p→link=pr; ∥链指针p→lmk逆转指向pr pr=p;p=q;汁+; ∥指针pr,p右移 cout<<"右移了"<<i<<"个结点。"<<endl; (2)指针p左移k个结点 template<class Type> void Lisk<Type> sifiToLefi( ListNode<Type>*& p, LisnNode<type>*& pr, int k)& if (p== NULL & pr==first )t ∥已经在链的最左端 cout<<"已经在链的最左端,不能再左移。”<<endl int i=0; ListNode<type>*q; while (pr l=NULL &&i<k)i ∥左移k个结点 q=pr→lnk;pr→link=p; ∥链指针p→lmk逆转指向p 指针 左移 cout<<"左移了”<<i<<"个结点。”<<endl; if (i<k)ipr=p; P=NULL; 3 ∥指针p移出表外,重置p,P 3-9试写出用单链表表示的字符串类及字符串结点类的定义,并依次实现它的构造函数、以及计算串 长度、串赋值、判断两串相等、求子串、两串连接、求子串在串中位置等7个成员函数。要求每个字 符串结点中只存放一个字符 【解答】 ∥用单链表表示的字符串类smg1的头文件 stringl. h const int maxLen = 300: ∥字符串最大长度为300(理论上可以无限长) class stringl i stringl ( ∥构造空字符串 ringl( char *obstr ) ∥从字符数组建立字符串 stringl ( ∥析构函数template<class Type> void List<Type> :: siftToRight ( ListNode<Type> *& p, ListNode<Type> *& pr, int k ) { if ( p == NULL && pr != first ) { //已经在链的最右端 cout << "已经在链的最右端,不能再右移。" << endl; return; } int i; ListNode<Type> *q; if ( p == NULL ) //从链头开始 { i = 1; pr = NULL; p = first; } //重置 p 到链头也算一次右移 else i = 0; while ( p != NULL && i < k ) { //右移 k 个结点 q = p→link; p→link = pr; //链指针 p→link 逆转指向 pr pr = p; p = q; i++; //指针 pr, p 右移 } cout << "右移了" << i << "个结点。" << endl; } (2) 指针 p 左移 k 个结点 template<class Type> void List<Type> :: siftToLeft ( ListNode<Type> *& p, ListNode<Type> *& pr, int k ) { if ( p == NULL && pr == first ) { //已经在链的最左端 cout << "已经在链的最左端,不能再左移。" << endl; return; } int i = 0; ListNode<Type> *q; while ( pr != NULL && i < k ) { //左移 k 个结点 q = pr→link; pr→link = p; //链指针 pr→link 逆转指向 p p = pr; pr = q; i++; //指针 pr, p 左移 } cout << "左移了" << i << "个结点。" << endl; if ( i < k ) { pr = p; p = NULL; } //指针 p 移出表外,重置 p, pr } 3-9 试写出用单链表表示的字符串类及字符串结点类的定义,并依次实现它的构造函数、以及计算串 长度、串赋值、判断两串相等、求子串、两串连接、求子串在串中位置等 7 个成员函数。要求每个字 符串结点中只存放一个字符。 【解答】 //用单链表表示的字符串类 string1 的头文件 string1.h #include <iostream.h> const int maxLen = 300; //字符串最大长度为 300(理论上可以无限长) class string1 { public: string1 ( ); //构造空字符串 string1 ( char * obstr ); //从字符数组建立字符串 ~string1 ( ); //析构函数
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有