痴 痴心绝对 Unregistered / Unconfirmed GUEST, unregistred user! 2004-03-16 #1 试写一算法 实现顺序表的就地逆置,即利用原表的存储空间将线性表(a1,a2,...an)逆置为(an,an-1,....a1). 如果不开辟一新的空间如何把其内的元素倒置?[]
C cslotus Unregistered / Unconfirmed GUEST, unregistred user! 2004-03-19 #2 若线性表是用链式结构(如链表)描述的,则可以采用以下算法: LinkNode *p,*q,*r; p = head; q = p->next; while(q!=null){//无后续结点时终止 r = q->next; q->next = p; p = q; q = r; } head->next = null; head = p; 若线性表是用线性结构(如数组)描述的,则可以采用以下算法: DataType var; int i=0,j=0; while(Array[j++]!='/0');//得到数组长度 for( i=0;i<=j;i++,j--){//交换下标i和j所处位置的值 var = Array; Array = Array[j]; Array[j] = var; }
若线性表是用链式结构(如链表)描述的,则可以采用以下算法: LinkNode *p,*q,*r; p = head; q = p->next; while(q!=null){//无后续结点时终止 r = q->next; q->next = p; p = q; q = r; } head->next = null; head = p; 若线性表是用线性结构(如数组)描述的,则可以采用以下算法: DataType var; int i=0,j=0; while(Array[j++]!='/0');//得到数组长度 for( i=0;i<=j;i++,j--){//交换下标i和j所处位置的值 var = Array; Array = Array[j]; Array[j] = var; }
痴 痴心绝对 Unregistered / Unconfirmed GUEST, unregistred user! 2004-03-19 #3 嗨 你好 不过当设一变量时 不就相当于多了一个存储这一变量的空间吗[][red][/red]
刘 刘麻子 Unregistered / Unconfirmed GUEST, unregistred user! 2004-03-20 #4 头尾对应调换(比如:第一个和最后一个换、第二个和倒数第二个换。。。。。)
C cslotus Unregistered / Unconfirmed GUEST, unregistred user! 2004-03-20 #5 一个变量也不能设?这有点变态了啊 那用这个方法,对于线性存储结构: for(i=0;i<=j;i++,j--){ Array = Array + Array[j]; Array[j] = Array - Array[j]; Array = Array - Array[j]; }
一个变量也不能设?这有点变态了啊 那用这个方法,对于线性存储结构: for(i=0;i<=j;i++,j--){ Array = Array + Array[j]; Array[j] = Array - Array[j]; Array = Array - Array[j]; }